조건에 따라 특정 값을 반환해야하는 SQL Select 문이 있습니다. 매번 여러 값을 반환해야하지만 Case 문에 대한 이해는 각 사례에 대해 하나의 값만 반환 할 수 있다는 것입니다.SQL Server - 사례 문에 여러 값 설정?
저는이 상황에서 UNION 문을 사용하여이 문제를 해결하고 있습니다.하지만이 모든 것이 다소 번거롭기는합니다. 더 좋은 방법이 있습니까? 기본적으로 나는 각각 "Yes", "No"또는 "In Future"응답을 가지고있다. (실제로 응답이 더 많지만, 예를 들어 3을 사용하여 짧게 유지한다.) - 각 응답 유형에 대해 적절한 응답의 값으로 1을, 다른 모든 값에 0을 사용하여 열을 생성해야합니다. 그것은 당신이 SQL 보면
내 (간체) 쿼리는 다음과 같습니다 ... 이해하는 것이 아마 분명있다 :
SELECT branch,
prompttype,
CASE WHEN response = 'Y' THEN 'Yes'
WHEN response = 'N' THEN 'No'
WHEN response = 'D' THEN 'Not Discussed'
FROM prompts;
는 다음과 같을 수 있습니다 ...
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