Oracle의 ROWNUM 의사 열 외에도 다음 대안을 사용하여 행의 시퀀스 번호를 얻을 수 있습니다. 1. 하위 쿼리(중첩 하위 쿼리 사용) 2. 분석 함수(예: ROW_NUMBER()); (새로 삽입된 행의 경우) 4. 임시 테이블(행 번호를 저장하기 위한 임시 테이블 생성)
Oracle에서 ROWNUM을 대체하려면 다른 방법을 사용하세요.
Oracle에서는 ROWNUM 의사 열을 사용하여 결과 집합에 있는 행의 시퀀스 번호를 가져옵니다. 그러나 경우에 따라 ROWNUM을 사용하는 데 제한이나 성능 문제가 발생할 수 있습니다. 따라서 다음 대안을 고려할 수 있습니다.
1. 하위 쿼리
중첩 하위 쿼리를 사용하여 기본 쿼리의 행 번호 추가:
<code class="sql">SELECT * FROM ( SELECT row_number() OVER (ORDER BY <sort_column>) AS rownum, <columns> FROM <table_name> ) AS subquery;</code>
2. 분석 함수
ROW_NUMBER() 분석 함수 사용 행 번호 추가:
<code class="sql">SELECT ROW_NUMBER() OVER (ORDER BY <sort_column>) AS rownum, <columns> FROM <table_name>;</code>
3. 시퀀스
새로 삽입된 행의 경우 시퀀스를 사용하여 고유한 행 번호를 생성할 수 있습니다.
<code class="sql">CREATE SEQUENCE rownum_seq START WITH 1; INSERT INTO <table_name> (id, ..., rownum) VALUES (..., NEXT VALUE FOR rownum_seq); SELECT rownum, <columns> FROM <table_name>;</code>
4 임시 테이블
행 번호를 저장할 임시 테이블 만들기:
<code class="sql">CREATE TEMPORARY TABLE rownum_temp ( rownum NUMBER, <columns> ); INSERT INTO rownum_temp (rownum, <columns>) SELECT row_number() OVER (ORDER BY <sort_column>), <columns> FROM <table_name>; SELECT rownum, <columns> FROM rownum_temp ORDER BY rownum;</code>
올바른 접근 방식 선택
올바른 대안 선택은 특정 요구 사항과 성능 고려 사항에 따라 달라집니다. 하위 쿼리 및 분석 기능은 상대적으로 작은 데이터 세트에 효과적입니다. 삽입 시 행 번호를 생성해야 하는 상황에서는 시퀀스와 임시 테이블을 선택하는 것이 더 좋습니다.
위 내용은 오라클에서 rownum을 바꾸는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!