求一条SQL语句

juner77617 2011-10-26 03:45:50
NAME BOOK
张三 A
李四 A
李四 B
王五 A
王五 B
希望得到的结果:
李四,王五

也就是说,希望得到同时有两本书的人员名单列表

谢谢大家,没分了。
...全文
123 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
juner77617 2011-10-26
  • 打赏
  • 举报
回复
再次谢谢大家!~
chtzhking 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 juner77617 的回复:]

SQL code
SELECT [VALUE]=
STUFF((
SELECT ','+ A.NAME from TABLE A group by A.NAME having count(1)=2 FOR XML PATH('')),1,1,'')


参照大家的提供的语句,根据需求自己写了一个。 也不知道是不是已经足够的简单。
谢谢大家。
[/Quote]+1
pengxuan 2011-10-26
  • 打赏
  • 举报
回复

if object_id('tb','U') is not null
drop table tb
go
create table tb
(
name varchar(10),
book varchar(10)
)
go
insert into tb
select '张三','' union all
select '李四','A' union all
select '李四','B' union all
select '王五','A' union all
select '王五','B'
go
;with cte (f1) as
(
select ','+name from tb group by name having count(1)=2 for xml path('')
)
select stuff(f1,1,1,'') from cte
go
fengzheng1987 2011-10-26
  • 打赏
  • 举报
回复
你可以先求出列表,然后把列表再拼成字符串,用逗号隔开
juner77617 2011-10-26
  • 打赏
  • 举报
回复
SELECT [VALUE]= 
STUFF((
SELECT ','+ A.NAME from TABLE A group by A.NAME having count(1)=2 FOR XML PATH('')),1,1,'')


参照大家的提供的语句,根据需求自己写了一个。 也不知道是不是已经足够的简单。
谢谢大家。
geniuswjt 2011-10-26
  • 打赏
  • 举报
回复
搜索:合并列值
rubingwoxin 2011-10-26
  • 打赏
  • 举报
回复
select distinct a.name from test a
inner join test b on a.name=b.name and a.book<>b.book
xuam 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jxjdzwang5555 的回复:]
引用 3 楼 xuam 的回复:
SQL code
select [name] from Table group by book having count(1)=2

count(1)这里的1是指什么?谢谢。
[/Quote]

select [name] from T group by [name] having count(1)=2

1和* 一样,就是计数而已.
juner77617 2011-10-26
  • 打赏
  • 举报
回复
先谢谢各位!题目没有表达有点出入,希望得到的应该是以逗号分开的人员名单字符串。并不是列表。抱歉。
fengzheng1987 2011-10-26
  • 打赏
  • 举报
回复
select [Name] from Te group by [Name] having count(*)=2
jxjdzwang5555 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xuam 的回复:]
SQL code
select [name] from Table group by book having count(1)=2
[/Quote]
count(1)这里的1是指什么?谢谢。
xuam 2011-10-26
  • 打赏
  • 举报
回复
select [name] from Table group by book having count(1)=2  
jxjdzwang5555 2011-10-26
  • 打赏
  • 举报
回复
sele NAME,count(book) from tt group by NAME having count(book)>=2?

但不能区分2本相同的书?
duoxu1983 2011-10-26
  • 打赏
  • 举报
回复
select distinct a.name from table a
where exists (select 1 from table b where a.name=b.name and a.book<>b.book)

34,576

社区成员

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

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