从表中选择TOP n行,其中n在另一个表中?

Sub*_*cob 0 sql t-sql sql-server-2008

如何在不使用Dynamic SqlQuery的情况下实现这一目标?

我有这个查询,

SELECT TOP n FROM mytable WHERE ID = @id
Run Code Online (Sandbox Code Playgroud)

要获得n的值,

SELECT nCOUNT FROM myAnotherTable WHERE ID = @id
Run Code Online (Sandbox Code Playgroud)

我可以使用Row_index()吗?

Ami*_*ngh 5

尝试这样....但请确保您select ncount返回单行.....如果不是它将选择顶行ncount

SELECT TOP(SELECT TOP 1 nCOUNT FROM myAnotherTable WHERE ID = @id) * FROM mytable WHERE ID = @id
Run Code Online (Sandbox Code Playgroud)

SqlFiddle:http://www.sqlfiddle.com/#!3 / 75c76 /1