求一SQL语句:从相同的行中取出一行?

wxshzf 2006-09-26 04:40:11
我的表如下:
UserID Account UserName ..........
100001 100001 张1..
100002 100001 张2..
100003 100002 张3..
100004 100002 张4..
100005 100002 张5..
100006 100003 张6..
100007 100003 张7..
100008 100003 张8..
100009 100004 张9..
100010 100004 李1..
100011 100004 李2.
100012 100004 李张.
100013 100004 李2..
......................................
UserID为唯一字段,而Account则是具有相同性质的用户,UserName则是用户姓名,如何得到以下4行UserID Account UserName
100001 100001 张1..
100003 100002 张3..
100006 100003 张6..
100009 100004 张9..
或则仅得到4个UserID:100001,100003,100006,100009,或者针对每1个Account,仅返回一个UserID.
...全文
298 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lydmc 2006-09-26
  • 打赏
  • 举报
回复
SELECT MIN(UserID)
FROM TABLE1
GROUP BY Account
jetdw 2006-09-26
  • 打赏
  • 举报
回复
create table test(UserID char(10),Account char(10),UserName char(10))
insert into test
select '100001','100001','张1'
union all
select '100002','100001','张2'
union all
select '100003','100002','张3'
union all
select '100004','100002','张4'

select * from test as a
where userid = (select top 1 userid from test where Account = a.Account)
dawugui 2006-09-26
  • 打赏
  • 举报
回复
dawugui(潇洒老乌龟):
userid唯一

那就用
select * from a b
where userid = (select top 1 userid where account = b.account)
junmail 2006-09-26
  • 打赏
  • 举报
回复
create table test(UserID char(10),Account char(10),UserName char(10))
insert into test
select '100001','100001','张1'
union all
select '100002','100001','张2'
union all
select '100003','100002','张3'
union all
select '100004','100002','张4'

select * from test where UserID in (select min(UserID) from test group by Account)
rea1gz 2006-09-26
  • 打赏
  • 举报
回复
dawugui(潇洒老乌龟):
userid唯一
rea1gz 2006-09-26
  • 打赏
  • 举报
回复
select * from a b
where userid = (select top 1 userid where account = b.account)
allright_flash 2006-09-26
  • 打赏
  • 举报
回复
limit 1(mysql)
rownum<=1(oracle)
top 1 (sql server)
dawugui 2006-09-26
  • 打赏
  • 举报
回复
UserID Account UserName ..........

select * from a b
where username = (select top 1 username where account = b.account)
allright_flash 2006-09-26
  • 打赏
  • 举报
回复
limit 1(mysql)
rownum<=1(oracle)
dawugui 2006-09-26
  • 打赏
  • 举报
回复
表:a
id name
11 aaaa
11 bbbb
11 cccc
22 dddd
22 eeee
22 ffff

如何将表中的相同id号的第一条记录取出来?即:
id name
11 aaaa
22 dddd

select id1=identity(int,1,1),* into #t from a
go
select id,name from #t where id1 in(select min(id1) from #t group by id)

select * from a b
where name=(select top 1 name from a where id=b.id)

wxshzf 2006-09-26
  • 打赏
  • 举报
回复
大侠们请帮帮我!

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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