--建立测试环境
Create Table 表(KindID varchar(10),Memo varchar(10))
--插入数据
insert into 表
select '1','1111' union
select '1','2222' union
select '2','3333' union
select '2','4444' union
select '2','5555'
go
select KindID,Memo=cast(Memo as varchar(8000)) into # from 表 order by KindID
declare @KindID varchar(10),@Memo varchar(8000)
update # set @Memo=case when @KindID=KindID then @Memo+','+Memo else Memo end
,memo=@memo,@KindID=KindID
select KindID,Memo=max(Memo) from # group by KindID
drop table #
go
declare @tb table(KindID varchar(100),Memo varchar(100))
--插入数据
insert into @tb
select '1','1111' union
select '1','2222' union
select '2','3333' union
select '2','4444' union
select '2','5555'
declare @KindID varchar(100),@Memo varchar(100)
select @KindID='',@Memo=''
update @tb set @memo=case when kindid=@kindid then @memo+','+memo else memo end,
@kindid=kindid,memo=@memo
select kindid,max(memo) as meno from @tb group by kindid
潮的一个例子
--建立测试环境
Create Table 表(CA varchar(10),CB varchar(10))
--插入数据
insert into 表
select '1','a' union
select '1','b' union
select '2','a' union
select '2','b' union
select '2','c' union
select '3','d' union
select '3','e'
select * from 表
--测试语句
go
CREATE FUNCTION FunMergeCharField(@vchA varchar(10))
RETURNS varchar(8000)
AS
BEGIN
DECLARE @r varchar(8000)
SET @r=''
SELECT @r=@r+','+CB FROM 表 WHERE CA=@vchA
RETURN(substring(@r,2,8000))
END
GO
select ca,dbo.FunMergeCharField(ca)as cb from 表 group by ca
--删除测试环境
Drop Table 表
drop FUNCTION FunMergeCharField
--建立测试环境
Create Table 表(KindID varchar(10),Memo varchar(10))
--插入数据
insert into 表
select '1','1111' union
select '1','2222' union
select '2','3333' union
select '2','4444' union
select '2','5555'
--测试语句
go
CREATE FUNCTION FunMergeCharField(@vchA varchar(10))
RETURNS varchar(8000)
AS
BEGIN
DECLARE @r varchar(8000)
SET @r=''
SELECT @r=@r+','+Memo FROM 表 WHERE KindID=@vchA
RETURN(substring(@r,2,8000))
END
GO
select KindID,dbo.FunMergeCharField(KindID) from 表 group by KindID
--删除测试环境
Drop FUNCTION FunMergeCharField
Drop Table 表