如何在sql查询中使用带有fetch的where子句。我的查询结束如下:
10 ROWS FETCH NEXT 5 ROWS ONLY WHERE table.FullName LIKE '%name%'
在where子句中收到错误。
关键字“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'
答案 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