반응형
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] 조건에 따라 조인테이블 및 조인조건 변경
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] 정렬 조건 없이 순위 매기기 (순번 지정) (0) | 2017.02.14 |
---|---|
[MSSQL] 특정 기간에 해당하는 모든 날짜 (MASTER..SPT_VALUES) (0) | 2017.02.13 |
[MSSQL] 집합 연산자 UNION (합집합), INTERSECT (교집합), EXCEPT (차집합) (0) | 2017.02.13 |
[MSSQL] 문자열을 뒤에서 부터 구분자로 잘라보자 (RIGHT, REVERSE, CHARINDEX, PATHINDEX) (0) | 2017.02.13 |
[MSSQL] ' (따옴표) 포함된 문자열 출력 (0) | 2017.02.13 |