오라클에서 rownum을 바꾸는 방법

下次还敢
풀어 주다: 2024-05-03 00:18:32
원래의
630명이 탐색했습니다.

Oracle의 ROWNUM 의사 열 외에도 다음 대안을 사용하여 행의 시퀀스 번호를 얻을 수 있습니다. 1. 하위 쿼리(중첩 하위 쿼리 사용) 2. 분석 함수(예: ROW_NUMBER()); (새로 삽입된 행의 경우) 4. 임시 테이블(행 번호를 저장하기 위한 임시 테이블 생성)

오라클에서 rownum을 바꾸는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!