![]() |
1
11
未经测试,但应有效:
|
![]() |
2
4
这里有一个有效的方法——我不知道它是否更有效,它是SQLServer2005+
显然,第一个“with”是设置值,因此您可以使用测试第二个,并最终选择工作-如果您正在查询现有表,则可以从“with results as…”开始。 |
![]() |
3
1
不确定“带领带”是否适用于SQL Server上的其他任何东西。 在SQL Server 2005及更高版本上,可以将“top”数字作为int参数传递:
|
![]() |
4
1
实际上,对WHERE-IN进行修改,利用内部联接会快得多。
|
![]() |
5
0
像这样的方法应该会奏效:
|
![]() |
6
0
@罗布#37760:
如果N为3,此查询将仅选择3行,请参见问题。“Top3”应返回5行。 |
![]() |
7
0
@Espo感谢您的现实检查-添加了子选择以更正此问题。 我认为最简单的回答是:
如果要将其放入以N为参数的存储过程中,则必须将SQL读入变量,然后执行它,或者执行行计数技巧:
这两个示例都假定为SQL Server,但尚未进行测试。 |
![]() |
8
0
@马特·汉密尔顿
|
![]() |
9
0
Crucible得到了它(假设SQL2005是一个选项)。 |
![]() |
10
0
嘿,我发现所有其他答案都有点长而且效率低 我的答案是:
|
![]() |
11
0
试试这个
|