sql pivot 能否将多行字符串合并成一行

ying_wzm 2017-12-04 05:49:35



能否将表中同一DeclareID的ContractNo数据合并成:
37SI12040,37SI12015,37SI12009,37SI12001,36SI12018X,37SI12018,37SI12023,37SI12035,37SI12045
这一长串的字符串 一行显示,838 37SI12040,37SI12015,37SI12009,37SI12001,36SI12018X,37SI12018,37SI12023,37SI12035,37SI12045
各位大神,帮帮忙
...全文
416 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ying_wzm 2017-12-11
  • 打赏
  • 举报
回复
谢谢各位大神
Andy__Huang 2017-12-04
  • 打赏
  • 举报
回复
declare @s varchar(2000) set @s='' select @s=@s+','+ContractNo from 你的表 print stuff(@s,1,1,'')
Andy__Huang 2017-12-04
  • 打赏
  • 举报
回复
declare @s varchar(2000)
set @s=''
select @s=@s+','+ContractNo
from AppLoginLog
print stuff(@s,1,1,'')
RINK_1 2017-12-04
  • 打赏
  • 举报
回复

if OBJECT_ID(N'TEMPDB..#T') IS NOT NULL
DROP TABLE #T
GO

CREATE TABLE #T
(DECLAREID VARCHAR(10),
 C VARCHAR(10),
 CONTRACTNO VARCHAR(10))
 GO
 
 INSERT INTO #T
 SELECT '838','331(C)','37SI12018' union all
 SELECT '838','332(C)','37SI12015' union all
 SELECT '838','372(C)','36SI12018' union all
 SELECT '838','392(C)','37SI12001' union all
 SELECT '838','393(C)','37SI12009' union all
 SELECT '838','331(C)','37SI12023' 
 
 
SELECT DECLAREID,
       STUFF((SELECT ','+CONTRACTNO FROM #T WHERE DECLAREID=A.DECLAREID FOR XML PATH('')),1,1,'') AS CONTRACNO_LIST
FROM #T A
GROUP BY DECLAREID

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧