寻求一条SQL语句

wuhjsxn 2004-11-21 01:11:53
1 aa
1 bb
1 cc
2 dd
2 ee 转化为
1 aa,bb,cc
2 dd,ee 大家帮个忙啊 给点sql语句
...全文
82 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
samchoy 2004-11-21
  • 打赏
  • 举报
回复
我刚问过的问题, 你参考一下:
http://community.csdn.net/Expert/topic/3563/3563642.xml?temp=.4707453
zlp321002 2004-11-21
  • 打赏
  • 举报
回复
hdhai9451(※★開拓者...前進☆※) ( ) 函数是最好的解决办法。。

如果用一条SQL 可能只能得到一条记录。。

通过参数传递

declare @s as varchar(8000)
set @s=''
select @s=@s+','+ltrim(rtrim(a)) from
(
select id,a from TABLE3 where id='1' group by id,a --ID='1' 时候
) x

set @s=case when (@s='') then '' else stuff(@s,1,1,'') end

select @s

结果:
----------------------------
aa,bb,cc
(所影响的行数为 1 行)

declare @s as varchar(8000)
set @s=''
select @s=@s+','+ltrim(rtrim(a)) from
(
select id,a from TABLE3 where id='2' group by id,a --ID='2' 时候
) x

set @s=case when (@s='') then '' else stuff(@s,1,1,'') end

select @s

结果:
----------------------------
dd,ee

(所影响的行数为 1 行)







Andy__Huang 2004-11-21
  • 打赏
  • 举报
回复
參考﹕

--建表
create table tb (A varchar(10),B varchar(1000))
Insert into tb
select '111','AA0000,AA0001,AA0002,'
union all select '111','BB0000,BB0001,BB0002,'
union all select '222','AA0120,AA0102,AA1453,'
union all select '222','BB1212,BB3423,BB2123,'

select * from tb

--函數
create function dbo.fn_b(@a varchar(10))
returns varchar(1000)
as
begin
declare @s varchar(1000)
set @s=''
select @s=@s+[B] from tb where A=@a
return (@s)
end

--刪除
drop table tb
drop function dbo.fn_b

--結果
select A,B=dbo.fn_b(A) from tb group by A
A B
-------------------------------------------
111 AA0000,AA0001,AA0002,BB0000,BB0001,BB0002,
222 AA0120,AA0102,AA1453,BB1212,BB3423,BB2123,

34,576

社区成员

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

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