gpt4 book ai didi

t-sql - 返回每第 n 条记录的行

转载 作者:行者123 更新时间:2023-12-03 07:16:43 24 4
gpt4 key购买 nike

如何根据我提供的数字参数从子查询中返回每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 条记录,我将收到第 30 条、第 60 条和第 90 条记录em> 行。

如果我传入数字 40,并且结果集包含 90 条记录,我将收到第 40第 80 行。

顺便说一句,作为背景信息,这用于捕获分页控件的每 n 个记录的键/id。

最佳答案

这就是 ROW_NUMBER可以帮助。它需要一个 order-by 子句,但这没关系,因为存在 order-by(并且需要保证特定的顺序)。

SELECT t.id, t.key
FROM
(
SELECT id, key, ROW_NUMBER() OVER (ORDER BY key) AS rownum
FROM datatable
) AS t
WHERE t.rownum % 30 = 0 -- or % 40 etc
ORDER BY t.key

关于t-sql - 返回每第 n 条记录的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4799816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com