Tengo el siguiente resultado SQL de un SELECT:
col1 | col2 | col3
A | 10 | 20
B | 10 | 20
C | 10 | 20
Quiero tener una columna adicional col4
en los resultados que se rellena según las siguientes condiciones:
col1
es A
, entonces col4
debe llenarse con el valor decol2
col1
es B
, entonces col4
debe llenarse con el valor decol3
col1
es C
, entonces col4
debe llenarse con el valor-
Por tanto, el resultado esperado se ve así:
col1 | col2 | col3 | col4
A | 10 | 20 | 10
B | 10 | 20 | 20
C | 10 | 20 | -
Si sus columnas son números enteros, entonces no debe usar un valor real -
como resultado:
SELECT col1,
col2,
col3,
CASE
WHEN col1 = 'A' THEN col2
WHEN col1 = 'B' THEN col3
WHEN col1 = 'C' THEN NULL
END col4
FROM dbo.YourTable;
Ahora, si desea una cadena como resultado para col4
, entonces podría usar:
SELECT col1,
col2,
col3,
CASE
WHEN col1 = 'A' THEN CAST(col2 AS VARCHAR(10))
WHEN col1 = 'B' THEN CAST(col3 AS VARCHAR(10))
WHEN col1 = 'C' THEN '-'
END col4
FROM dbo.YourTable;
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras