SQL

Tibero ROWNUM 사용방법 (오라클 ROWNUM Oracle)

daeyun대윤 2024. 1. 9. 15:05

 

Mysql에서 ROWNUM 사용하던 SQL을 Tibero로 변경해야 되는 상황 발생.

SET @rownum:=0;
SELECT @rownum:=@rownum+1 AS ROWNUM, a.*
FROM TABLE_NAME a
ORDER BY a.ID ASC

SET @rownum:=0; 는 MySQL에서 사용되는 사용자 변수를 초기화하는 구문입니다. 이것은 @rownum이라는 사용자 변수를 0으로 설정합니다.

이 사용자 변수는 후속 쿼리에서 사용되어 각 행에 대해 일련번호를 부여하는 데 사용됩니다. 즉, @rownum이라는 변수가 0부터 시작하여 각 행에 대해 1씩 증가하면서 일련번호를 부여합니다. 이는 주로 결과 집합에서 행의 순서를 추적하거나 특정 순서에 따라 행에 번호를 부여할 때 사용됩니다.

 

여기서 @rownum은 사용자 변수로, :=를 사용하여 해당 변수에 값을 할당합니다. 그리고 @rownum에 1씩 더해진 값을 ROWNUM이라는 별칭을 가진 열로 선택합니다.

즉, 결과는 각 행에 일련번호가 부여된 것을 의미합니다. a.*는 해당 테이블의 모든 열을 의미합니다. 따라서 각 행에 일련번호가 추가된 전체 테이블 결과를 얻을 수 있습니다.


 

tibero나 oracle이나 거의 같은 문법이니까, 아래 참고 블로그에서 힌트를 얻어서 해결함.

SELECT ROWNUM, x.*
FROM (
  SELECT a.* FROM TABLE_NAME a ORDER BY a.ID
) x;

 

속시원하다~

 

 

오라클 ROWNUM 참고 블로그 : https://gent.tistory.com/170

 

[Oracle] 오라클 조회 순번 매기는 방법 ( ROWNUM, ROW_NUMBER() )

1. ROWNUM 키워드 이용하는 방법 - 조회된 순서되로 순번을 매긴다. SELECT ROWNUM , a.* FROM emp a - ORDER BY 를 사용하면 순번이 뒤섞이므로 정렬된 서브쿼리 결과에 ROWNUM 을 매겨야 한다. SELECT ROWNUM , x.* FRO

gent.tistory.com

 

728x90
300x250