본문 바로가기

프로그래밍/MSSQL

[MSSQL] ORDER BY CASE (조건정렬)

반응형

 

 

 

ORDER BY 구문 (정렬) 에 CASE 문을 사용하여 조건 정렬을 설정해보자

 

 

 

예제

원본 데이터

 

다음과 같은 데이터가 들어있는 테이블이 있다.

이 테이블의 데이터를 정렬하고자 한다.

 

이때, 첫 문자가 A로 시작하는 데이터는 내림차순 (A3, A2, A1)으로

그리고 첫 문자가 B로 시작하는 데이터는 올림차순 (B1, B2, B3)으로 출력하고자 한다.

 

WITH TEST_A (col1) AS (
    SELECT 'A1' UNION ALL
    SELECT 'A2' UNION ALL
    SELECT 'A3' UNION ALL
    SELECT 'B1' UNION ALL
    SELECT 'B2' UNION ALL
    SELECT 'B3'
)
SELECT *
FROM TEST_A
ORDER BY
    CASE WHEN col1 LIKE 'A%' THEN col1 END DESC
    , CASE WHEN col1 LIKE 'B%' THEN col1 END ASC

이렇게 ORDER BY 에서 CASE 구문을 이용하여, 따로 정렬 조건을 지정해준다.

 

 

결과 데이터

 

 

 

 

[MSSQL] COUNT CASE (조건 카운트) COUNT DISTINCT (중복제거 카운트)
[MSSQL] 조건에 따라 조인테이블 및 조인조건 변경

 

 

반응형