|
|
1
5
这里是另一个只在SQLServer2005和更新版本中工作的解决方案,因为它使用except语句。但我还是分享了。 如果你想得到50-75的记录,写:
|
|
|
2
5
|
|
|
3
4
当您只需要限制时,ms sql具有等效的TOP关键字,这一点很清楚。 当你需要对偏移量进行限制时,你可以尝试前面描述的一些方法,但它们都会增加一些开销,例如,订购一种方式,然后订购另一种方式,或者expencive不运行。 我认为不需要所有这些级联。在我的建议中,最干净的解决方案就是在SQL端使用TOP而不是offset,然后使用适当的客户机方法(比如php中的mssql_data_seek)查找所需的起始记录。虽然这不是一个纯粹的SQL解决方案,但我认为它是最好的解决方案,因为它不会增加任何开销(跳过的记录不会在网络上传输,如果这是您担心的话)。 |
|
|
4
0
我会尝试在我的ORM中实现这一点,因为它非常简单。如果它真的需要在SQL Server中,那么我将查看linq to SQL为下面的linq to SQL语句生成的代码,并从那里开始。实现该代码的MSFT工程师多年来一直是SQL团队的一员,他知道自己在做什么。 var result=myDataContext。我的桌子。跳过(页面索引*页面大小)。Take(页面大小) |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |