【发布时间】:2016-09-03 01:26:49
【问题描述】:
我对分页结果的查询是
SELECT
*
FROM
(SELECT
ROW_NUMBER() OVER (ORDER BY Id DESC) AS RowNum,
*
FROM
My_Table) AS RowConstrainedResult
WHERE
(RowNum >= 1 AND RowNum <= 10)
ORDER BY
RowNum
这很好用。但是,当我尝试使用 like 语句搜索搜索结果时,它不起作用。
搜索查询
SELECT
*
FROM
(SELECT
ROW_NUMBER() OVER (ORDER BY Id DESC) AS RowNum,
*
FROM
My_Table) AS RowConstrainedResult
WHERE
column1 LIKE '%search%'
AND (RowNum >= 1 AND RowNum <= 10)
ORDER BY
RowNum
如果前 10 行不包含搜索值,则返回 0 结果而不是查找完整表。我不能使用 offset 和 fetch,因为它在 SQL Server 2008 中不支持。
任何更好的分页方式在 SQL Server 2008 中都可以正常工作
谢谢
【问题讨论】:
-
我已经格式化了你的问题,发现你的第二个查询在
(RowNum >= 1之前缺少运算符;我添加了AND,但您可以检查其正确性。 -
谢谢,但这不是问题
-
我不接受这个问题;我是说我添加了一些不存在的内容,因此您可以回顾并使用正确的详细信息更新您的问题以获得正确答案!
标签: sql-server sql-server-2008 pagination