2017-09-18 31 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

ありがとうございました。 –

関連する問題