본문 바로가기
MS SQL

MS SQL_CASE WHEN THEN 조건식사용법

by 디디찐 2022. 8. 16.
반응형

1. CASE WHEN이란?

조건에 따라 서로 다른 값을 반환할 수 있는 CASE 표현식으로 프로그래밍 언어에서 IF 문, SWITCH 문과 비슷한 성격

SELECT, WHERE, ORDER BY에서 CASE문을 활용할 수 있다.

참고: https://goldswan.tistory.com/14

 

[MSSQL]SELECT, WHERE, ORDER BY절에서 CASE문 활용하기(SELECT CASE, WHERE CASE, ORDER BY CASE)

서론 개발을 진행하면서 SELECT, WHERE, ORDER BY절에서 CASE문을 통해 원하는 데이터를 추출했던 경험들이 있었습니다. 오늘은 그동안 사용해봤던 경험들을 토대로 SELECT, WHERE, ORDER BY절에서 CASE문을 활

goldswan.tistory.com


2. CASE WHEN사용법

CASE WHEN [조건식 1 ]THEN '반환값1'
     WHEN [조건식 2] THEN '반환값2'
,,,
ELSE '조건에 만족하지 않을 경우 반환값'
END

조건식에는 비교연산자, NULL연산자들을 사용할 수 있다.
또한 논리연산자를 사용하여 여러 개의 조건을 부여할 수 있다.

3 . CASE WHEN사용 예시

1. SEND_MAIL_YN 의 값에 따라 텍스트 값 반환

아래의 테이블에서 SEND_MAIL_YN의 값에 따라

Y 이면 => "메일 수신"

Y 가 아니면 => "메일 거부"

 

CONTRACT_LIST TABLE

코드

 SELECT SEQ_NO, CONTRACT_NAME, CONTRACT_CONTENTS, 
        CASE WHEN SEND_MAIL_YN = 'Y' THEN '메일 수신'
        ELSE '메일 거부' END AS '메일 수신 여부'
   FROM CONTRACT_LIST

결과

CASE WHEN  결과 1


2. DEPT_CD 의 값에 따라 텍스트 값 반환

 

부서코드의 값에 따라 부서명 넣는 법

 

코드

 SELECT SEQ_NO, CONTRACT_NAME, CONTRACT_CONTENTS, 
        CASE WHEN DEPT_CD = '111' THEN '인사팀'
             WHEN DEPT_CD = '222' THEN '회계팀'
        ELSE '영업팀' END AS '부서명'
   FROM CONTRACT_LIST

결과

 

CASE WHEN 결과 2

 

3. UPDATE에서 CASE WHEN 사용하기

부서코드의 값을 부서명값으로 아예

조건에 따라 컬럼값을 UPDATE 하고 싶을 때

 

코드

UPDATE CONTRACT_LIST
   SET DEPT_CD = ( CASE WHEN DEPT_CD = '111' THEN '인사팀'
                        WHEN DEPT_CD = '222' THEN '회계팀'
                        ELSE '영업팀' END
                 )

결과

 


볼 품 없지만 예제에 사용한 테이블 

 

SAMPLE_CONTRACT_LIST.txt
0.00MB

반응형

'MS SQL' 카테고리의 다른 글

MS SQL_CURSOR 연산자 사용법  (0) 2022.09.08
MS SQL_LIKE 연산자 사용법  (0) 2022.08.17
MS SQL_PIVOT 사용법  (0) 2022.08.03
MS SQL_PARTION사용법  (0) 2022.08.02
MS SQL_사용자 정의 함수 사용법  (0) 2022.08.02