如何解决如何仅显示SQL数据中所需的一条记录,是使用select top 1的最佳方法?
这是我的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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。