distinct在SQL语句里面的用法,大家来看看

我最近碰到一个问题,简单如下:信息编号标题发布人1AAA用户12BBB用户13CCC用户24DDD用户25EEE用户26FFF用户37GGG用户48HHH用户59III用... 我最近碰到一个问题,简单如下:

信息编号 标题 发布人
1 AAA 用户1
2 BBB 用户1
3 CCC 用户2
4 DDD 用户2
5 EEE 用户2
6 FFF 用户3
7 GGG 用户4
8 HHH 用户5
9 III 用户6
10 JJJ 用户9
11 KKK 用户7
12 LLL 用户8

我想按照ID号从小到大来排序输出9条信息,输出结果如下:

----------------------------------------------
1 AAA 用户1
3 CCC 用户2
6 FFF 用户3
7 GGG 用户4
8 HHH 用户5
9 III 用户6
10 JJJ 用户9
11 KKK 用户7
12 LLL 用户8

-------------------------------------------
请问各位这SQL代码怎么写?
select top 9 * from 表 order by 信息编号 asc

想在里面加上distinct 发布人 字段怎么加???????

也就是用户名重复的信息只输出其用户名最前面的一条就可以了,其它的信息不用输出了,就转去输出其它用户的信息,如果其它用户名也有多条信息,也是只输出它最前面的一条,依此类推~~~~~~~也就是想在一个表里面输出最前面9条数据,一个相同用户只能输出一条数据。
按照1楼的意思加进去了没有任何数据出来,不知你哪少写了代码没有?
展开
 我来答
创作者zUzVB1Sl31
2015-10-04 · 编程类资料、英语学习资料
创作者zUzVB1Sl31
采纳数:1331 获赞数:5975

向TA提问 私信TA
展开全部

首先要解释的是:Distinct是避免    查询里的重复行,不是针对某一列的。

简单举例,数据表这样写:

姓名   年龄   性别

----------------------

张三    男      25

李四    女      25

王五    男      42

那么我这么写:

select distinct * from 表名

毫无效果,因为压根就没重复行,如果把语句减少一个查询字段:

select distinct 年龄 from 表名

那结果就只有两条了。

百度网友e6ea01f
2009-10-12 · TA获得超过449个赞
知道小有建树答主
回答量:425
采纳率:0%
帮助的人:541万
展开全部
----请参考----
--按name分组取第一次出现的行所在的数据。
select a.* from tb a where val = (select top 1 val from tb where name = a.name) order by a.name
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自仙寓山能说会道的鲁肃
2009-10-12 · TA获得超过335个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:290万
展开全部
Select top 9 * from 表 where 信息编号 in(select Min(信息编号) from 表 group by 发布人) order by 信息编号
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zpyu
2009-10-12 · 超过70用户采纳过TA的回答
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:203万
展开全部
select top 9 * from 表 group by 发布人 order by 信息编号 asc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chuyiaini
2009-10-12 · 超过15用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:49.4万
展开全部
select MIN(标题),发布人 from 表 group by 发布人
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式