1. 변수 사용

구글링 결과 제일 많이 나온 방법.. 잠깐 쓰고 버릴 변수를 만들고 그 변수로 ROW_NUMBER() 뒤에 오는 OVER() 조건에 넣어줬다.


1
2
3
4
DECLARE @RN INT = 1;
SELECT ROW_NUMBER() OVER(ORDER BY @RN) AS ROWS
       , *
  FROM [TABLE_NAME];

이것이 그 쿼리...

DECLARE 부터 통째로 MyBatis 쿼리 xml 파일에 넣었다.

그랬더니 깔끔하게 동작!


2. 서브 쿼리 사용

OVER()의 조건에 상수가 들어가지 않는다는 것이 문제였는데.. 생각하다보니 서브쿼리를 넣으면 어떻게 될까 궁금했다.


1
2
3
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS ROWS
       , *
  FROM [TABLE_NAME];


결과는 성공. 결국 상수 직접은 아니면서 1이기만 하면 다 되는 것 같다.




깨알팁.. 잊어버리지 않기 위해 블로그에 정리해서 올린다. 다음에도 MSSQL 쓸일이 있겠지.....


+ Recent posts