我从SELECT获得以下SQL结果:
col1 | col2 | col3
A | 10 | 20
B | 10 | 20
C | 10 | 20
我想在结果中添加一个列col4
,根据以下条件填充:
col1
为A
,则应使用col4
col2
col1
为B
,则应使用col4
col3
col1
为C
,那么col4
应填充值-
因此预期结果如下:
col1 | col2 | col3 | col4
A | 10 | 20 | 10
B | 10 | 20 | 20
C | 10 | 20 | -
答案 0 :(得分:4)
如果您的列是整数,那么您不应该使用实际的-
作为结果:
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;
现在,如果您确实需要col4
的结果字符串,那么您可以使用:
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;