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
728x90
300x250