具有获取下一行的Where子句

时间:2015-11-03 10:59:14

标签: sql sql-server codeigniter

如何在sql查询中使用带有fetch的where子句。我的查询结束如下:

 10 ROWS FETCH NEXT 5 ROWS ONLY WHERE table.FullName LIKE '%name%' 

在where子句中收到错误。

error message

  

关键字“WHERE”附近的语法不正确

修改

select * 
from table name  
WHERE FullName LIKE '%name%' 
ORDER BY FullName 
OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY

当我删除语句'OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY'

时,查询将起作用

2 个答案:

答案 0 :(得分:1)

您可能有错误的子句顺序,您需要先对结果进行排序才能获得稳定的结果集:

SELECT *
FROM ...
WHERE table.FullName LIKE '%name%'
ORDER BY ...
OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY

LiveDemo

请注意,%phrase% 非SARGable ,并且查询的大表的效果会很差。

OFFSET FETCH 仅适用于 SQL Server 2012 +

答案 1 :(得分:0)

您不能在SELECT *上执行聚合函数,您必须在SELECT子句中指定列的名称,或者在WHERE子句中指定标准名称的表名。table_name.shemaname.columnname