본문 바로가기
데이터베이스/MSSQL

MSSQL에서 오라클 DECODE 처럼 쿼리 사용하기

by Dokon Jang 2022. 7. 14.
반응형

오라클의 DECODE는 매우 유용한 함수입니다.

MSSQL에서는 DECODE가 없어 처음에는 불편했습니다.

오라클의 DECODE처럼 사용 할 수 있는 방법을 소개합니다.

아래의 쿼리 예제를 실행해보면 쉽게 이해 할 수 있을 겁니다.^^

IIF

하나의 조건에 따라 참과 거짓으로 값을 표시 할 수 있는 함수입니다.

IIF( boolean_expression, true_value, false_value )

쿼리 예제

WITH CITY AS
(
	SELECT 10 CODE, '서울' NAME
	UNION
	SELECT 20 CODE, '부산' NAME
	UNION
	SELECT 30 CODE, '대구' NAME
	UNION
	SELECT 40 CODE, '대전' NAME
)
SELECT NAME, 
       IIF(CODE = 10, '수도권', '지방') 
  FROM CITY

 

CASE WHEN...

조건이 여러개인 경우는 CASE WHEN 문을 사용해야 합니다.

DECODE보다 쿼리가 복작하고 길어지긴 합니다.ㅠㅠ

CASE  
     WHEN when_expression THEN result_expression [ ...n ]   
     [ ELSE else_result_expression ]   
END

쿼리 예제

WITH CITY AS
(
	SELECT 10 CODE, '서울' NAME
	UNION
	SELECT 20 CODE, '부산' NAME
	UNION
	SELECT 30 CODE, '대구' NAME
	UNION
	SELECT 40 CODE, '대전' NAME
)
SELECT NAME,
       CASE WHEN CODE = 10 THEN '서울/경기'
            WHEN CODE = 20 OR CODE = 30 THEN '경상'
            WHEN CODE = 40 THEN '충청'
            ELSE '기타'
       END 
  FROM CITY

댓글0