У меня есть оператор SQL Select, где мне нужно вернуть определенные значения в зависимости от условия. Мне нужно каждый раз возвращать несколько значений, но мое понимание утверждения Case заключается в том, что вы можете вернуть только одно значение для каждого случая.SQL Server - настройка нескольких значений в заявлении о случае?
Я обойду это с помощью заявлений UNION на данный момент, но все это выглядит немного громоздким - есть ли лучший способ сделать это? В принципе, у меня есть набор подсказок, каждый из которых имеет ответ «Да», «Нет» или «В будущем» (у меня на самом деле больше ответов, но я просто использую 3 для примера, чтобы он был коротким!) - Мне нужно создать столбец для каждого типа ответа, с 1 в качестве значения для соответствующего ответа и 0 для всех остальных. Это, вероятно, яснее понять, если вы посмотрите на SQL ...
My (упрощенный) запрос выглядит следующим образом:
SELECT branch,
promptType,
response,
1 AS 'Yes',
0 AS 'No',
0 AS 'Not Discussed'
FROM prompts
WHERE response = 'Y'
UNION
SELECT branch,
promptType,
response,
0 AS 'Yes',
1 AS 'No',
0 AS 'Not Discussed'
FROM prompts
WHERE response = 'N'
UNION
SELECT branch,
promptType,
response,
0 AS 'Yes',
0 AS 'No',
1 AS 'Not Discussed'
FROM prompts
WHERE response = 'D'
Интересно, я отдам! Не подумал об этом, спасибо :-) – TabbyCool
Принимается в качестве наилучшего ответа, полученный запрос гораздо более ремонтоприемным, чем тот, который у меня был изначально. – TabbyCool