728x90
반응형
의사 컬럼(PSEUDO 슈도컬럼) |
|
-- 먼저 ora_user expall.dmp 파일 import하기 | |
ROWNUM 키워드 - 인덱스에서 저장하는 ROWID(행주소) 값이기도 함. - 저장된 행 순서대로 자동으로 순번을 부여함. - 단순쿼리인 경우에는 WHERE절에만 사용가능 단, 서브쿼리 사용 시 SELECT절에도 표현할 수 있다. - 페이징처리를 하려면 서브 쿼리를 이용하여 할 수 있다. *페이징이란 : 한번에 보여지는 수를 조정하는 것 - ORDER BY절 이용 시 꼭 서브 쿼리에서 사용할 것 - 페이징 처리시에는 꼭 별칭을 지정해주어야만 제대로 인식 --ROWNUM은 1번부터 순차적으로 실행되어야 하기에 11이상은 X |
--단순쿼리 시, 작거나만 가능 SELECT * FROM CUSTOMERS WHERE ROWNUM <=1000 AND CUST_GENDER = 'M' ; SELECT ROWNUM, ROWID, C.* FROM CUSTOMERS C ; SELECT ROWNUM, ROWID, C.* FROM CUSTOMERS C WHERE CUST_GENDER = 'F'; --ROWNUM 바뀜. ROWID 안 바뀜 --서브쿼리 시 SELECT ROWNUM RN, C.* FROM (SELECT * FROM CUSTOMERS WHERE CUST_GENDER = 'M') C WHERE ROWNUM <= 500; SELECT ROWNUM RN, C.* FROM (SELECT * FROM CUSTOMERS WHERE CUST_GENDER = 'M') C WHERE ROWNUM >=1 AND ROWNUM <= 50 ORDER BY CUST_ID; --ORDER BY가 추후에 실행되기에 ROWNUM 순번이 바뀐다. SELECT ROWNUM RN, C.* FROM (SELECT * FROM CUSTOMERS WHERE CUST_GENDER = 'M') C WHERE ROWNUM >=11 AND ROWNUM <= 50 ORDER BY CUST_ID; --ROWNUM은 1번부터 순차적으로 실행되어야 하기에 WHERE절에 11이상은 X SELECT ROWNUM RN, C.* FROM (SELECT * FROM CUSTOMERS WHERE CUST_GENDER = 'M' ORDER BY CUST_ID) C WHERE ROWNUM >=1 AND ROWNUM <= 50; --페이징 쿼리 --페이징 처리시에는 꼭 별칭을 지정해주어야만 제대로 인식될 수 있다. SELECT * FROM (SELECT ROWNUM RN, C2.* FROM CUSTOMERS C2 WHERE CUST_GENDER = 'M') WHERE RN BETWEEN 10 AND 13; SELECT * FROM (SELECT ROWNUM RN, C2.* FROM CUSTOMERS C2 WHERE CUST_GENDER = 'M') WHERE RN >= 50 AND RN <=100; |
SYNTAX ROWNUM < 값 또는 ROWNUM <=값 --단순쿼리 시, 작거나만 가능 *값은 양의 정수로 표현 |
SYSDATE, SYSTIME, NEXTVAL, CURRVAL, ROWNUM
--서브쿼리 시 SELECT ROWNUM RN, C.* FROM (SELECT * FROM CUSTOMERS WHERE CUST_GENDER = 'M') C WHERE ROWNUM <= 500;
SELECT ROWNUM RN, C.* FROM (SELECT * FROM CUSTOMERS WHERE CUST_GENDER = 'M') C WHERE ROWNUM >=1 AND ROWNUM <= 50 ORDER BY CUST_ID; --ORDER BY가 추후에 실행되기에 ROWNUM 순번이 바뀐다. SELECT ROWNUM RN, C.* FROM (SELECT * FROM CUSTOMERS WHERE CUST_GENDER = 'M') C WHERE ROWNUM >=11 AND ROWNUM <= 50 ORDER BY CUST_ID; --ROWNUM은 1번부터 순차적으로 실행되어야 하기에 11이상은 X
SELECT ROWNUM RN, C.* FROM (SELECT * FROM CUSTOMERS WHERE CUST_GENDER = 'M') C WHERE ROWNUM >=1 AND ROWNUM <= 50 ORDER BY CUST_ID; --ORDER BY가 추후에 실행되기에 ROWNUM 순번이 바뀐다. SELECT ROWNUM RN, C.* FROM (SELECT * FROM CUSTOMERS WHERE CUST_GENDER = 'M') C WHERE ROWNUM >=11 AND ROWNUM <= 50 ORDER BY CUST_ID; --ROWNUM은 1번부터 순차적으로 실행되어야 하기에 11이상은 X
--페이징 쿼리 --페이징 처리시에는 꼭 별칭을 지정해주어야만 제대로 인식될 수 있다. SELECT * FROM (SELECT ROWNUM RN, C2.* FROM CUSTOMERS C2 WHERE CUST_GENDER = 'M') WHERE RN BETWEEN 10 AND 13; SELECT * FROM (SELECT ROWNUM RN, C2.* FROM CUSTOMERS C2 WHERE CUST_GENDER = 'M') WHERE RN >= 50 AND RN <=100;
728x90
반응형
'[ORACLE]' 카테고리의 다른 글
[ORACLE] 집합연산자 UNION, UNION ALL, INTERSECT, MINUS (0) | 2024.01.24 |
---|---|
[ORACLE] MERGE (0) | 2024.01.23 |
[ORACLE] 계정 비밀번호 만료기간 해제 및 변경 (0) | 2024.01.23 |
[ORACLE] SYNONYM (0) | 2024.01.23 |
[ORACLE] DCL - GRANT, REVOKE, ALTER USER RENAME (0) | 2024.01.23 |