如果是仅得到一个字符串值,可以像下面,如果像返回的是列,用注释掉的语句DECLARE @s NVARCHAR(1000) ;WITH t(ID,billid, name)AS ( select 1,'1001',N'前纺' UNION ALL select 2,'1001',N'加弹' UNION ALL select 3,'1001',N'织布' UNION ALL select 3,'1000',N'染色' ) --SELECT stuff((SELECT '-'+t.name FROM t WHERE t.billid='1001' FOR XML PATH('')),1,1,'') SELECT @s=isnull(@s+'-','')+t.name FROM t WHERE t.billid='1001' SELECT @s
SELECT a.billid, STUFF((SELECT '-'+ CAST(b.name AS VARCHAR) FROM T as b WHERE a.billid = b.billid FOR xml path('')), 1, 1, '') as name from T as a GROUP BY a.billid
;WITH t(ID,billid, name)AS ( select 1,'1001',N'前纺' UNION ALL
select 2,'1001',N'加弹' UNION ALL
select 3,'1001',N'织布' UNION ALL
select 3,'1000',N'染色'
)
--SELECT stuff((SELECT '-'+t.name FROM t WHERE t.billid='1001' FOR XML PATH('')),1,1,'')
SELECT @s=isnull(@s+'-','')+t.name FROM t WHERE t.billid='1001'
SELECT @s
a.billid,
STUFF((SELECT '-'+ CAST(b.name AS VARCHAR) FROM T as b WHERE a.billid = b.billid FOR xml path('')), 1, 1, '') as name
from T as a
GROUP BY a.billid