sql server 多行数据拼接的语句实例

发布时间:2020-01-12编辑:脚本学堂
sql server中多行数据拼接的例子,用自定义函数实现的,简单而实用,有需要的朋友,可以参考下。

1、表结构
id type productCode
1 铅笔 0001
2 铅笔 0002
3 铅笔 0003
4 钢笔 0004
5 钢笔 0005
6 钢笔 0004
7 圆珠笔 0007
8 圆珠笔 0008
9 圆珠笔 0007

2、自定义函数
 

复制代码 代码示例:
GO
/****** Object: UserDefinedFunction [dbo].[fun] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create function [dbo].[fun](@type nvarchar(10))
returns nvarchar(200)
as
begin
declare @re nvarchar(200)
declare @code nvarchar(200)
set @re=''
set @code=''
select @re=@re+productCode+',' from T where type=@type group by productCode
select @re=left(@re, len(@re)-1)
return @re
end

3、查询语句
 

复制代码 代码示例:
select type,dbo.fun(type) from (select distinct type from T) A

输出结果:
钢笔 0004,0005
铅笔 0001,0002,0003
圆珠笔 0007,0008

备注:当一个sql语句无法完成任务时,可以考虑创建自定义函数或存储过程来实现,作好性能方面的优化即可。