【问题标题】:Row_Number() continue in Union all queryRow_Number() 继续联合所有查询
【发布时间】:2018-02-27 10:09:09
【问题描述】:

如果我有 3 个表,我如何获得增量唯一编号?

例如:

  • 第一次查询 row_number 结果 = 1,2,3
  • 第二次查询 row_number 结果 = 4,5,6
  • 第三次查询 row_number 结果 = 7,8,9

我尝试了以下查询,但从中我可以获取到第二张表的增量。

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 条记录,我想得到 row_number 的结果为 1,2,3,4,5,6,7,8,9

【问题讨论】:

    标签: sql union row-number union-all


    【解决方案1】:

    使用子查询:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 2014-03-27
      相关资源
      最近更新 更多