首页 > 代码库 > MSSQL将多行单列变一行一列并用指定分隔符分隔,模拟Mysql中的group_concat
MSSQL将多行单列变一行一列并用指定分隔符分隔,模拟Mysql中的group_concat
-- 将多行记录(只能一个列)用指定分隔符分隔IF(OBJECT_ID(‘sp_RowsChangeClosBySplit‘,N‘P‘) IS NOT NULL) DROP PROC sp_RowsChangeClosBySplitGOCREATE PROC sp_RowsChangeClosBySplit@table nvarchar(50), -- 表名@field nvarchar(50), -- 要拼接的字段@split varchar(10)=‘,‘, -- 分隔符@where nvarchar(500)=‘‘ -- 条件ASBEGIN DECLARE @sql NVARCHAR(1000)SET @sql=‘select TOP 1 stuff((select ‘‘‘+@split+‘‘‘+convert(varchar(50),‘+@field+‘) from ‘+@table+‘ ‘+@where+‘ FOR XML PATH(‘‘‘‘)), 1, 1, ‘‘‘‘) as cols from ‘+@table+‘ group by ‘+@fieldPRINT @sqlEXEC sp_executesql @sqlEND
调用:
EXEC dbo.sp_RowsChangeClosBySplit @table = N‘pro_Household‘, -- nvarchar(50) @field = N‘ID‘, -- nvarchar(50) @split = ‘,‘, -- varchar(10) @where = N‘where id < 10‘ -- nvarchar(500)
分割后:结果集:
普通查询:
SELECT ID FROM dbo.pro_Household WHERE ID<10
分割钱:结果集
MSSQL将多行单列变一行一列并用指定分隔符分隔,模拟Mysql中的group_concat
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。