从两个不同的表中确定SQL Server中的前k个值
本文关键字:SQL Server 个值 两个 | 更新日期: 2023-09-27 18:28:15
我有两个表table_1
和table_2
,每个表包含N个整数值。
要求是获取表中的Top 10
整数。
考虑到N是一个大的7位数,在SQL Server中实现这一点的最有效方法是什么?
如果这是一个通用的编程问题,那么最大堆数将是解决这个问题的最佳数据结构,所以我想知道是否有一种替代方案可以在SQL Server中执行类似的功能。
我能想到的唯一其他解决方案是通过将table_2
值插入到table_1
中来组合这些表,发出ORDER BY
子句并选择前10个。
对于不同的前10个数字
select top 10
res.value
from (
select value from table_1
union
select value from table_2
) res(value)
order by res.value desc
对于排名前十的数字
select top 10
res.value
from (
select value from table_1
union all
select value from table_2
) res(value)
order by res.value desc