使用 LIMIT 关键字的 SQL Server 查询中的语法错误[关闭]

2024-03-23

我正在尝试运行此查询,但收到错误

关键字“limit”附近的语法错误

SQL查询:

select * 
from messages as msg 
where "+"(SELECT date from messages where date between
 msg.firsttime and msg.lasttime and receiver is null limit 1) 
limit 5

除了“limit”关键字之外我的错误在哪里。

Select top 5 * 
from messages as msg 
where (
    SELECT top 1 date 
    from messages 
    where date between msg.firsttime and msg.lasttime 
      and receiver is null
) 

这里有两个问题。

首先是LIMIT. LIMIT不是 ANSI 标准 SQL。它是 MySQL 和 SQLite 中使用的专有扩展。 SQL Server 有它自己的专有扩展(SELECT TOP),但它也支持实际标准使用OFFSET/FETCH https://learn.microsoft.com/en-us/sql/t-sql/queries/select-order-by-clause-transact-sql?view=sql-server-ver16#using-offset-and-fetch-to-limit-the-rows-returned.

接下来是WHERE条款。该查询有一个嵌套的SELECT主要声明WHERE子句来找到一个date值...然后不将其与任何东西进行比较。没有条件操作。您需要与这个结果进行某种布尔比较。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 LIMIT 关键字的 SQL Server 查询中的语法错误[关闭] 的相关文章

随机推荐