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 절에서 사용하는 모든 값을 사용할 수 있다. 

 
 

ROWNUM R1 선택
, DECODE(ENAME, 'SCOTT',1,'킹',2,ROWNUM+2) R2
, DECODE(ENAME, 'SCOTT',1,'KING',2,ROWNUM) R3
, ㅏ.*
EMP A에서
2인 주문

 

'개발 > 오라클 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

+ Recent posts