IT 이야기/DB

[MSSQL] CASE문 표현식 (case when)

하늘봉 2022. 8. 29. 17:25
반응형

안녕하세요. 마술공입니다.

MS-SQL에서 CASE문, 표현식 스크립트를 소개해드리겠습니다.

스크립트를 직접 보면 직관적으로 의미를 파악할 수 있으니 작업에 참고하시기 바랍니다.

 

CASE 표현식은 조건 논리를 기반으로 값을 출력하는 스칼라 표현식 입니다.


CASE 표현식은 스킬라 표현식을 사용할 수 있는 SELECT, WHERE, HAVING, ORDER BY 절, 체크 제약 조건 등에서 모두 사용할 수 있으며 작성 방법에 따라 단순형, 검색형으로 나눌 수 있습니다.

 

단순형 CASE 방식

SELECT cust_nm 
     , CASE cust_type WHEN 'S1' THEN N'일반'
                      WHEN 'S2' THEN N'우수'
                      ELSE '최우수' END AS cust_type
FROM CUSTOMER_INFO

특징 : 동일한 값을 비교

 

검색형 CASE 방식

SELECT cust_nm 
     , CASE WHEN cust_type = 'S1' THEN N'일반'
            WHEN cust_type = 'S2' THEN N'우수'
            ELSE '최우수' END AS cust_type
FROM CUSTOMER_INFO

특징 : 단순형보다 더욱 유연하게 사용가능, 동일한 값일 비교할 뿐 만 아니라 다른 논리적 표현식을 사용 가능함

 

스칼라 표현식이 사용 가능한 곳이라면 어디에서든 사용 가능

SELECT cust_nm 
FROM CUSTOMER_INFO
ORDER BY CASE WHEN cust_type = 'S1' THEN N'일반'
              WHEN cust_type = 'S2' THEN N'우수'
              ELSE '최우수' END

앞서 말했듯이 ORDER BY 절 같은 곳에서도 CASE문 사용이 가능 함

반응형