case문 여러개를 쓰고싶은데 맨위에 조건이 만족되면 밑에 조건문은 성립이 안되네요 ㅠㅠ
table : staff
이름 | 성별 | 코드 |
홍길동 | 남 | A |
김유신 | 남 | D |
유관순 | 여 | B |
이순신 | 남 | C |
select 이름,성별,코드,
case when 성별='남' then 1
when 성별 ='남' and 코드='A' then 2
when 성별 ='남' and 코드='C' then 3
when 성별='남' and 코드='D' then 4
else 0 end 출력
from staff
이름 | 성별 | 코드 | 출력 |
홍길동 | 남 | A | 1 |
김유신 | 남 | D | 1 |
이순신 | 남 | C | 1 |
이렇게 출력됩니다 .
위에 조건문만 성립이 되는거같습니다 ㅠ
이름 | 성별 | 코드 | 출력 |
홍길동 | 남 | A | 2 |
김유신 | 남 | D | 4 |
이순신 | 남 | C | 3 |
각각 조건에 맞게 출력하고 싶습니다.
감사합니다.
WITH staff AS ( SELECT '홍길동' 이름, '남' 성별, 'A' 코드 FROM dual UNION ALL SELECT '김유신', '남', 'D' FROM dual UNION ALL SELECT '유관순', '여', 'B' FROM dual UNION ALL SELECT '이순신', '남', 'C' FROM dual UNION ALL SELECT '구루비', '남', 'B' FROM dual ) SELECT 이름, 성별, 코드 , CASE 성별 WHEN '남' THEN CASE 코드 WHEN 'A' THEN 2 WHEN 'C' THEN 3 WHEN 'D' THEN 4 ELSE 1 END ELSE 0 END 출력 FROM staff ;