Row_Number() 继续联合所有查询
Row_Number() continue in Union all query
如果我有 3 个 table,我如何获得增量唯一编号?
例如:
- 第一个查询 row_number 结果 = 1,2,3
- 第二次查询 row_number 结果 = 4,5,6
- 第三次查询 row_number 结果 = 7,8,9
我尝试了下面的查询,但从中我可以获得增量到第 2 个 table。
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
每个 table 有 3 条记录,我想得到 row_number 的结果为 1,2,3,4,5,6,7,8,9
使用子查询:
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;
如果我有 3 个 table,我如何获得增量唯一编号?
例如:
- 第一个查询 row_number 结果 = 1,2,3
- 第二次查询 row_number 结果 = 4,5,6
- 第三次查询 row_number 结果 = 7,8,9
我尝试了下面的查询,但从中我可以获得增量到第 2 个 table。
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
每个 table 有 3 条记录,我想得到 row_number 的结果为 1,2,3,4,5,6,7,8,9
使用子查询:
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;