经常遇到的,一个字段显示多字段数据(精典)

有表內容﹕
編號 內容
A    abc
A    aaa
A    dddd
B    1223
B    fkdjfd
....

實現結果﹕
A   abc,aaa,dddd
B   1223,fkdjfd
要求用一條SQL實現﹐如﹕select sum(內容) from table group by 編號

--该问题,写一个合并函数,后,分组合并既可!

--测试数据
create Table 表(編號 varchar(20),內容 varchar(20))
insert 表 select 'A','abc'
union all select 'A','aaa'
union all select 'A','dddd'
union all select 'B','1223'
union all select 'B','fkdjfd'


--处理分组合并函数学
Create Function JoinStr(@SNO as varchar(20))
returns varchar(200)
begin
declare @s as varchar(8000)
set @s=''
select @s=@s+','+ltrim(rtrim(內容)) from
(
select 內容 from 表 where 編號=@SNO
)
A
set @s=stuff(@s,1,1,'')
return  @s
end

--查询语句
select 編號,dbo.JoinStr(編號) as 内容 from 表 group by 編號

 


本文来自CSDN博客:http://blog.csdn.net/zlp321002/archive/2005/01/19/260184.aspx

下例通过在第一个字符串 (abcdef) 中删除从第二个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,创建并返回一个字符串。

SELECT STUFF('abcdef', 2, 3, 'ijklmn')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值