distinct 与order by 联用引发的问题

shiosank 2009-07-11 05:47:01
PersID time
1 05:00
1 06:00
1 08:00
2 09:00
2 10:00
3 07:00

按照time为顺序,显示distinct PersID
期望显示
1
3
2
select distinct PersID
from tablename
order by time

报错:如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。
求解




...全文
281 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
devilidea 2009-07-11
  • 打赏
  • 举报
回复
select persID,min([time])as time
from tb
group by persID order by time asc
SQL77 2009-07-11
  • 打赏
  • 举报
回复
SELECT * FROM TB T WHERE NOT EXISTS(SELECT 1 FROM TB WHERE PersID=T.PersID  AND TIME<T.TIME) ORDER BY TIME
jack_ailly 2009-07-11
  • 打赏
  • 举报
回复
group by persid
shiosank 2009-07-11
  • 打赏
  • 举报
回复
3Q,问题解决!!!!!
feixianxxx 2009-07-11
  • 打赏
  • 举报
回复
-- =========================================
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================

IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(persID int ,[time] varchar(10))
go
insert into tb
select
1 , '05:00' union all select
1 , '06:00' union all select
1 , '08:00' union all select
2 , '09:00' union all select
2 , '10:00' union all select
3 , '07:00'

go
select persid,min(time)as time
from tb
group by persid
order by time
/*------------
persID time
----------- ----------
persid time
----------- ----------
1 05:00
3 07:00
2 09:00
-------*/

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧