动态TOP查询

时间:2015-09-03 23:22:07

标签: sql sql-server stored-procedures

我有两张桌子:网站和网页。每个站点连接到零个或多个页面。每个站点都包含[学分]值(数字)。

我想查询一下:返回N(相当于[学分])页面,该网站有一个或多个[学分]。

这样的事情:

SELECT TOP (sites.Credits) pages.Id, sites.Id FROM sites, pages 
    WHERE sites.Credits > 0 AND sites.Id = pages.WebSites_Id

注意每个网站可以拥有不同的[学分]值。所以,这个TOP不能在全球范围内运作。

任何解决方案?

谢谢

1 个答案:

答案 0 :(得分:2)

请勿在{{1​​}}子句中使用逗号。您不恰当地使用FROM,因为它仅适用于整个结果集。相反,请考虑TOP

以下是使用row_number()的一种方法:

CROSS APPLY