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.