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 BYOFFSET 毫无意义,所以你可以这样做

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”附近的语法不正确

sql-server:“,”附近的语法不正确

SQL 语法错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在附近使用的正确语法