我有两个表 table_1
和 table_2
,每个表都包含 N 个整数值。
要求是获取表中的前 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
对于前 10 个数字
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
关于c# - 从两个不同的表中确定 SQL Server 中的前 k 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34485847/