gpt4 book ai didi

SQL - 限制结果

转载 作者:行者123 更新时间:2023-12-02 08:51:33 25 4
gpt4 key购买 nike

我想知道您是否可以在 Microsoft SQL Server 2k8 R2 上做这样的事情

假设我有一个返回 100 行数据的查询。

他们是我可以传递一些变量的方法,例如@lower_limit 和@upper_limit。

然后我想让查询记录下限和上限之间的行

例如:

@lower_limit = 5
@upper_limt 10

将从 100 条记录中返回第 5 - 10 行。

最佳答案

您可以在结果集上分配 ROW_NUMBER(),然后使用 BETWEEN 语句来限制行数。

一个人为的例子:

WITH data AS
(
SELECT
ID
,YourColumn
,ROW_NUMBER() OVER (ORDER BY ID) AS RowNum
FROM
YourTable
)
SELECT
*
FROM
data
WHERE
RowNum BETWEEN 5 AND 10

编辑:对于标准分页,这正是我在我开发的所有应用程序中使用的技术:

DECLARE @PageNumber int = /* The page number you want */
DECLARE @PageSize int = /* The number of records per page */
WITH paged AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY [OrderByColumns]) AS RowNum
,*
FROM
[YourSource]
)
SELECT
[Column1]
,[Column2]
,...
FROM
paged
WHERE
RowNum BETWEEN (@PageNumber - 1) * @PageSize + 1 AND @PageNumber * @PageSize
ORDER BY
[OrderByColumns] -- Same as used in ROW_NUMBER()

关于SQL - 限制结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8185991/

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