使用带有isnull和else的CASE语句

时间:2017-01-27 20:55:23

标签: sql tsql case

我有一个[颜色]列,其中包含'黑','红',NULL,'WW','RR'

我想要一个应该有

的列
if color black then 'B'
if color red then 'r'
if color is Null then 'Empty'
for all other entries 'n/a'

我正在使用follwoing,但它显示错误

SELECT Name,
        CASE color
            WHEN 'black' THEN 'b'
            WHEN 'red' THEN 'r'
            WHEN ISNULL(color, 'empty')
            else 'n/a'
           END AS Color_code
FROM SalesLT.Product;

2 个答案:

答案 0 :(得分:5)

您可以使用xrandr结构执行此操作,但如果使用CASE方法则无法调用函数,因此您可以使用CASE fieldname WHEN

CASE WHEN fieldname condition

OR:

SELECT Name,
        CASE WHEN color = 'black' THEN 'b'
            WHEN color = 'red' THEN 'r'
            WHEN color IS NULL THEN  'empty'
            else 'n/a'
           END AS Color_code
FROM SalesLT.Product;

答案 1 :(得分:4)

你可以尝试这种方式

  SELECT Name,
          CASE 
              WHEN color = 'black' THEN 'b'
              WHEN color = 'red' THEN 'r'
              WHEN color is null  THEN  'empty'
                ELSE 'n/a'
          END AS Color_code
  FROM SalesLT.Product;