728x90
SELECT *
FROM TB_FRUIT
ORDER BY DECODE(FRUIT, 'APPLE', 1, 'GRAPES', 2, 'BANANA', 3, 99) ASC;
이번에 개발하다가 원치않게 위와 같은 소팅이 필요할 때가 있었다. DECODE함수를 통한 변환으로 소팅 기반 숫자를 만든다. 이때 범주에 들지 않는 것은 모두 99 로 변환한다.
ORDER BY에 DECODE 함수를 사용하는 것은 속도면에서 좋지는 않을 것 같지만, 일시적으로 사용되는 쿼리에는 무방할 것으로 보인다.
※ 위 쿼리들은 현재 Live 에서 사용하는 것을 변형한 것임을 밝혀둔다.
728x90
'PROGRAMMING > Database' 카테고리의 다른 글
[ORACLE] 동일 상품정보 제거하기 (4) | 2022.12.14 |
---|---|
[ORACLE] 로그인 정책 적용 (10) | 2022.12.13 |
[오라클] 주문배송 집계정보 처리 (19) | 2022.12.07 |
[ORACLE] 이번달 1일, 마지막일 구하기 (8) | 2022.11.16 |
[ORACLE] ORA-01830 : 날짜 형식의 지정에 불필요한 데이터가 포함되어 있습니다. (0) | 2022.09.07 |
댓글