У меня есть таблица, похожая на следующую:
Date Description Value1 Value2
01/01/2012 shiny colour 2 0
01/01/2012 yellow colour 2 2
03/01/2012 matt colour 2 2
03/01/2012 matt 4 1
03/01/2012 shiny 2 2
Я хочу написать запрос SELECT SQL (T-SQL), который выведет все вышеперечисленные столбцы, но также отобразит дополнительный столбец в качестве вывода оператора SELECT, значение которого зависит от наличия слова «цвет» в описании ( если присутствует «цвет», это будет одно значение, в противном случае будет отображаться другое значение).
(Я также хотел бы отобразить еще один дополнительный столбец поверх того, значение которого зависит от наличия слов «матовый» или «блестящий» в столбце «Описание». Но я предполагаю, что метод сделать это будет аналогичным).
Я считаю, что должен быть в состоянии сделать это с помощью функции COALESCE, но я не знаком с этим и изо всех сил пытаюсь заставить что-нибудь работать?
РАСШИРЕНИЕ
Эй, спасибо за ваши ответы. Они действительно полезны. У меня есть еще одно дополнение к вопросу. Мой второй сгенерированный столбец основан на информации из первого сгенерированного столбца. Итак, что-то вроде:
SELECT *,
CASE
WHEN Description LIKE '%colour%' THEN 'SomeValue'
ELSE 'Unclassified'
END AS Category1,
CASE
WHEN AnotherColumn LIKE 'Something' THEN 'SomeValue'
WHEN Category1='Unclassified' THEN 'Unclassified'
ELSE 'Generic'
END AS Category2
FROM table_name
Как заставить выходные данные категории 2 полагаться на выходные данные категории 1? Я пытаюсь что-то вроде выше, но это не работает.
На мой дополнительный вопрос ответили здесь: оператор T-SQL CASE зависит от другого оператора CASE в том же запросе SELECT