我有一张桌子
名字分数 萨马 12 普拉迪普 30 加里 90
我想从上表中获得前 2 名。这可以通过row_number()
函数来完成。但它也应该适用于交叉应用。但是我下面提到的代码是给出所有行而不是前 2 分。
select abc.score
from #b as a
cross apply (
select top 2 score
from #b as
where b.name = a.name
order by b.score desc
) as abc
你能告诉我上面的代码有什么问题吗?