정렬을 할 때, 단순히 오름차순이나 내림차순이 아닌 특정 조건을 기준으로 정렬을 해야하는 경우가 있다.
이런 경우에 ORDER BY부분에서 DECODE나 CASE를 이용하여 표현할 수 있다.
1. CASE 사용방법
SELECT *
FROM 테이블명
ORDER BY (
CASE 컬럼명
WHEN 조건A THEN 1
WHEN 조건B THEN 2
ELSE 3
END
)
사실 SELECT 부분에서 많이 사용하는 형태로 익숙한 형태이긴 한데, 정렬부분에서 사용한 적이 없어서 익숙하지 않은 느낌이 들었다.
THEN과 ELSE뒤에 숫자는 출력 순서를 나타낸다.
SELECT *
FROM 테이블명
ORDER BY DECODE(컬럼명, 조건A, 1, 조건B, 2, 3)
위의 CASE로 정렬한 것과 같은 내용이며, 역시 숫자는 출력 순서를 나타낸다.
'알아가기 > 알거리' 카테고리의 다른 글
IE8 특정 CSS 적용 (0) | 2017.12.13 |
---|---|
IE8에서 trim() 함수 사용하기 (0) | 2017.12.01 |
MySQL 외부 IP 접속 허용 및 복구 / ERROR 1364(HY000) 해결 (0) | 2017.08.30 |
오라클에 엔터(줄바꿈) 입력 및 제거 (0) | 2017.05.29 |
구글 검색 새탭으로 열기 (0) | 2017.03.10 |