데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요
개발초보입니다.
부서 | 직책 | 수당 |
영업1팀 |
| 50000 |
영업2팀 |
| 50000 |
| 팀장 | 50000 |
| 부팀장 | 50000 |
영업3팀 | 팀장 | 50000 |
이런 테이블이 있을 때
직책상관없이 부서가 영업1팀, 2팀이거나 /
부서상관없이 직책이 팀장, 부팀장이어야
수당이 5만원 지급된다 할 때
where 조건을
부서 in (영업1팀, 영업2팀) or 직책 in (팀장, 부팀장)
주는것은 알겠는데요
여기서 영업3팀은 팀장만 준다 할때는
조건절을 어떻게 해야할까요..
case when 을 써보려했는데 도저히 떠오르지가 않습니다.
Comment 1
-
자리비움
2017.11.14 17:29
WITH T1 AS(SELECT [부서] = '영업1팀', [직책] = '', [수당] = 50000 UNION ALLSELECT [부서] = '영업1팀', [직책] = '', [수당] = 50000 UNION ALLSELECT [부서] = '', [직책] = '팀장', [수당] = 50000 UNION ALLSELECT [부서] = '', [직책] = '부팀장', [수당] = 50000 UNION ALLSELECT [부서] = '영업3팀', [직책] = '팀장', [수당] = 50000 UNION ALLSELECT [부서] = '영업3팀', [직책] = '부팀장', [수당] = 50000)SELECT *FROM T1WHERE [부서] IN ('영업1팀','영업2팀')OR [직책] = (CASE WHEN [부서] = '영업3팀' AND [직책] = '부팀장' THEN 'X'WHEN [직책] IN ('팀장','부팀장') THEN [직책]ELSE 'X' END)