SQL 命令错误:“4”附近的语法不正确 [重复]
Posted
技术标签:
【中文标题】SQL 命令错误:“4”附近的语法不正确 [重复]【英文标题】:SQL Command error: Incorrect syntax near '4' [duplicate] 【发布时间】:2018-02-25 17:23:12 【问题描述】:我收到“'4' 附近的语法错误”。执行此命令时:
@"SELECT * FROM [Table] OFFSET 4 LIMIT 2;"
这里的问题是什么?
【问题讨论】:
你使用什么数据库引擎? 不确定如何获取版本,但我使用的是 Visual Studio Express 2015 可能是 mysql 或 PostgreSQL @FerdinandGaspar:它是 SQL-Server。看[]
您不能在 SQL-Server 中使用 LIMIT 和 OFFSET。改用 TOP
【参考方案1】:
SQL SELECT TOP 子句 SELECT TOP 子句用于指定要返回的记录数。
SELECT TOP 子句对包含数千条记录的大型表很有用。返回大量记录可能会影响性能。
注意:并非所有数据库系统都支持 SELECT TOP 子句。 MySQL 支持 LIMIT 子句选择有限数量的记录,而 Oracle 使用 ROWNUM。
SQL Server/MS 访问语法:
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
例子
SELECT TOP 2 *
FROM [Table]
【讨论】:
怎么从第5行开始什么的? TOP 旁边的数字只决定行数【参考方案2】:SQL Server 中没有LIMIT
。你用FETCH
:
没有ORDER BY
,OFFSET
毫无意义,所以你可以这样做
SELECT TOP 2 t.*
FROM [Table] t;
如果你有ORDER BY
:
SELECT t.*
FROM [Table] t
ORDER BY ?
OFFSET 4 ROWS FETCH FIRST 2 ROWS ONLY;
?
是您要排序的列名称的占位符。
【讨论】:
'?' 附近的语法不正确。 FETCH 语句中选项 FIRST 的使用无效。 @"SELECT * FROM [Table] ORDER BY [ID] OFFSET 4 ROWS FETCH FIRST 2 ROWS ONLY;"以上是关于SQL 命令错误:“4”附近的语法不正确 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
执行 INSERT 时出现 SQL 错误:“s”附近的语法不正确 [重复]
SQL 语法错误; “检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'Order INT NOT NULL' 附近使用的正确语法 [重复]
关键字“AS”附近的语法不正确。在 SQL Server [重复]
错误 [42000] [Microsoft][SQL Native Client][SQL Server]关键字“SET”附近的语法不正确