【发布时间】:2013-07-29 17:39:16
【问题描述】:
这里的 SQL-noobie 想要将以下存储过程修改为从指定行开始选择指定数量行的存储过程。比如我想从第10行开始选择5行,即10、11、12、13、14、15。
这是我的 SP 在 atm 的样子:
SELECT Posts.Slug, Comments.commentId, Comments.[date], Comments.name, Comments.[text]
FROM Comments
INNER JOIN Posts ON Comments.postId = Posts.Id
WHERE Comments.approved = 0
我不需要对结果进行排序,因为我想按顺序阅读,以防万一。
谢谢!
【问题讨论】:
-
你认为“依次”是什么意思?按什么排序?
-
你想要的也叫paging。
-
在您的情况下,顺序确实很重要,因为没有顺序,结果可能因不同的执行而异。你基本上是在寻找分页。在这种情况下,您只需要订购,然后使用 RowNum 获取切片:stackoverflow.com/questions/109232/…
-
“我不需要对结果进行排序,因为我想按顺序阅读,以防万一”这句话自相矛盾,你最好删除它。
-
SQL Server 不维护它们在数据库中的存储顺序。考虑一个表,一个无序的行包。如果您想按某些东西订购,您需要告诉 SQL Server 那是什么。在这种情况下,我假设
[date],只要这只是一个糟糕的名字,它实际上也包括时间。
标签: sql sql-server tsql