【发布时间】:2011-01-25 22:59:52
【问题描述】:
如何根据我提供的数字参数从子查询中返回每个 nth 记录?
例如,我可能有以下查询:
SELECT
Id,
Key
FROM DataTable
WHERE CustomerId = 1234
ORDER BY Key
例如
子查询结果可能如下所示:
Row Id Key
1 1 A3231
2 43 C1212
3 243 E1232
4 765 G1232
5 2432 E2325
...
90 3193 F2312
如果我传入数字 30,并且子查询结果集包含 90 条记录,我将收到 30th、60th 和 90th em> 行。
如果我传入数字 40,并且结果集包含 90 条记录,我将收到 40th 和 80th 行。
作为旁注,对于背景信息,这是用于捕获分页控件的每 n 条记录的键/ID。
【问题讨论】:
-
请注意,如果没有
ORDER BY,您将获得随机顺序的结果,因此您不妨只限制第一个 N 个结果。 -
@Oli 谢谢,忘记添加了。结果将始终保持相同的顺序,并且永远不会改变。
标签: tsql sql-server-2008