2017-09-18 1 views
4

테이블이 3 개인 경우 증분 고유 번호를 어떻게 얻을 수 있습니까?Row_Number() Union에서 계속 쿼리

예를 들어

:

  • 1 쿼리 ROW_NUMBER 결과 = 1,2,3
  • 2 쿼리 ROW_NUMBER 결과 = 4,5,6
  • 3 쿼리 ROW_NUMBER 결과 = 7, 8, 9

나는 아래의 쿼리를 시도했지만 그로부터 2 번째 테이블까지 증분을 얻을 수있다.

SELECT ROW_NUMBER() OVER(ORDER BY filename) AS SrNo,fileName FROM Tab1 
UNION ALL 
SELECT ROW_NUMBER() OVER(ORDER BY filename) + (SELECT COUNT(*) FROM tab1) AS 
SrNo, filename FROM Tab2 
UNION ALL 
SELECT ROW_NUMBER() OVER(ORDER BY filename) + (SELECT COUNT(*) FROM tab2) AS 
SrNo, filename FROM Tab3 

각 테이블은 3 개 기록을 가지고 있는데 1,2,3,4,5,6,7,8,9

답변

4

사용으로 하위 쿼리 ROW_NUMBER의 결과를 얻을 :

SELECT ROW_NUMBER() OVER (ORDER BY which, filename) as SrNo, filename 
FROM (SELECT 1 as which, fileName FROM Tab1 
     UNION ALL 
     SELECT 2 as which, filename FROM Tab2 
     UNION ALL 
     SELECT 3 as which, filename FROM Tab3 
    ) ttt; 
+0

잘 보입니다. 시도해 보겠습니다. –

+0

고마워요. 언급 한대로 잘 작동합니다. –