반응형
오라클의 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
반응형
'데이터베이스 > MSSQL' 카테고리의 다른 글
MSSQL 여러 컬럼의 MIN, MAX, SUM, AVG 구하기 (0) | 2023.06.13 |
---|---|
MSSQL 문자 숫자 변환 및 숫자 체크 (0) | 2022.08.18 |
MSSQL 분모가 0 일때 처리 방법 (0) | 2022.07.07 |
MSSQL 개월 차이에 대해서 (3) | 2022.05.24 |
MSSQL CASE WHEN 조건절에서 NULL 처리 (0) | 2021.10.21 |
댓글