Row_Number() 与联合查询 [英] Row_Number() with union query
本文介绍了Row_Number() 与联合查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 sql 查询,它从两个具有相同列名的表中返回行.我需要一个完整结果集中所有记录的行号.
I have an sql query that returns rows from two tables with same column names. I need a row number of all records in a complete result set.
以下是查询
select Id, VersionNumber from documents where id=5
Union all
select Id, VersionNumber from versions where id=5
order by VersionNumber desc
应该怎么做?
如果我只需要返回一个 row_num,其中 VersionNumber 是 5,该怎么办.
And what if I only need to return a row_num where VersionNumber is lets say 5.
推荐答案
试试这个:
SELECT *, ROW_NUMBER() OVER(ORDER BY Id) ROW_NUM
FROM (
select Id, VersionNumber from documents where id=5
Union all
select Id, VersionNumber from versions where id=5
) a
order by VersionNumber desc
按版本号 5 过滤使用:
TO filter by version number 5 use:
SELECT *
FROM (SELECT *,
Row_number() OVER(ORDER BY versionnumber DESC, id) row_num
FROM (SELECT id,
versionnumber
FROM documents
WHERE id = 5
UNION ALL
SELECT id,
versionnumber
FROM versions
WHERE id = 5) a) b
WHERE version = 5
这篇关于Row_Number() 与联合查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文