问题描述
这是我的SQL查询,
select emailid,emailsentime
from [dbo].[clientbase]
where emailsent time > '1995-01-02'
and emailsent time < '1995-01-03'
order by emailsenttime desc
但是它要提取该日期的所有电子邮件ID,我只想显示记录的第一行(因为这是该日期发送的最新电子邮件ID。
我想尝试一下,因为当前我正在执行下降操作(如果我正在执行上升操作,那将是最近的操作)。
emailid emailsenttime
1986789 1995-01-02 22:51:12
1986788 1995-01-02 22:50:12
1986787 1995-01-02 22:49:12
1986786 1995-01-02 22:48:12
解决方法
您需要行限制查询。
在标准SQL中,您可以这样做:
select ...
from ...
where ...
order by emailsenttime desc
fetch first 1 row only
也就是说,语法可能会因您的数据库而异,例如:
-
MySQL,Postgres:
select ... from ... where ... order by emailsenttime desc limit 1
-
旧版本的SQL Server:
select top (1) ... from ... where ... order by emailsenttime desc