Использование оператора CASE с isnull и else
У меня есть столбец [Color], который содержит 'Black', 'Red', 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 ответов:
Для этого можно использовать любую структуру
CASE, но вы не можете вызвать функцию, если используете подходCASE fieldname WHEN, поэтому вы можете использовать либоCASE WHEN fieldname condition: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;Или:
SELECT Name, CASE color WHEN 'black' THEN 'b' WHEN 'red' THEN 'r' WHEN NULL THEN 'empty' else 'n/a' END AS Color_code FROM SalesLT.Product;
Можно попробовать так
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;
Comments