SELECT ROWNUM, A.* FROM EMP A;
여기서 'SCOOT'를 1번 자리에, 'KING' 2번 자리에 위치시키고 싶다.
SELECT ROWNUM R1
, A.*
FROM EMP A
ORDER BY DECODE(ENAME, 'SCOTT',1,'KING',2,ROWNUM+2)
ORDER BY 절에 DECODE 뿐만 아니라 FUNCTION도 사용 가능하다.
왜 ROWNUM 뒤에 +2를 줬을까?
SELECT ROWNUM R1
, DECODE(ENAME, 'SCOTT',1,'KING',2,ROWNUM+2) R2
, DECODE(ENAME, 'SCOTT',1,'KING',2,ROWNUM) R3
, A.*
FROM EMP A
ORDER BY 2
ORDER BY 는 SELECT 절 이후에 판단되기 때문에 구조상 SELECT 절에서 사용하는 모든 값을 사용할 수 있다.
'개발 > 오라클 SQL' 카테고리의 다른 글
집합 연산자 사용 시 주의사항 (0) | 2022.12.30 |
---|---|
UNION ALL, UNION (0) | 2022.12.28 |
NULL을 다룰 때 주의할 점 (0) | 2022.12.23 |
오라클 비밀번호 만료 (0) | 2022.11.27 |
문자열 다루기 핵심 TRANSLATE (1) | 2022.11.25 |