如其将SQL两列数据串成一个字符
如果将SQL两列数据串成一个字符
1、数据库显示如下:
A列 B列
001 代码
002 名称
003 单位
004 数量
2、如果将上面这个结果串成下面这个字符串(两个字段之间用空格,每行用逗号隔开)
001 代码,002 名称,003 单位,004 数量
------最佳解决方案--------------------
declare @str varchar(2000)=''
select @str=@str+','+A+' '+B from TB
select stuff(@str,1,1,'')
------其他解决方案--------------------
------其他解决方案--------------------
谢谢两位,测试1楼的方法可以实现我想要的效果。
1、数据库显示如下:
A列 B列
001 代码
002 名称
003 单位
004 数量
2、如果将上面这个结果串成下面这个字符串(两个字段之间用空格,每行用逗号隔开)
001 代码,002 名称,003 单位,004 数量
------最佳解决方案--------------------
declare @str varchar(2000)=''
select @str=@str+','+A+' '+B from TB
select stuff(@str,1,1,'')
------其他解决方案--------------------
--CREATE TABLE tb(A列 VARCHAR(10), B列 VARCHAR(10) )
--INSERT INTO TB
--SELECT '001', '代码'
--UNION ALL
--SELECT '002', '名称'
--UNION ALL
--SELECT '003' , '单位'
--UNION ALL
--SELECT '004' , '数量'
WITH test AS (
SELECT RTRIM(A列)+' '+RTRIM(B列) AS col
FROM TB)
select DISTINCT
stuff((select ','+col from test b
for xml path('')),1,1,'') 'col'
from test a
/*
001 代码,002 名称,003 单位,004 数量
*/
------其他解决方案--------------------
谢谢两位,测试1楼的方法可以实现我想要的效果。