2017-02-17 73 views
2

我有两列的表像串连许多行成一个单一的文本字符串

VENDOR_NAME DIRECTORY_NAME 
DL_101Records .ssh 
DL_101Records ADHOC 
DL_101Records ARCHIVED 
DL_101Records INBOUND 
DL_101Records OUTBOUND 
DL_101Records PROCESSED 
DL_101Records pub 
DL_101Records TAKEDOW 

ň

有没有一种简单的方法把它变成像

VENDOR_NAME DIRECTORY_NAME 
DL_101Records .SSH ,ADHOC ,ARCHIVED ,INBOUND ,OUTBOUND ,PROCESSED ,PUB ,TAKEDOWN 
一个字符串
+1

访问此链接 http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string –

回答

0
SELECT VENDOR_NAME, 
     DIRECTORY_NAME = STUFF(
          (
           SELECT ', '+DIRECTORY_NAME AS [text()] 
           FROM _table AS t 
           WHERE t.VENDOR_NAME = tt.VENDOR_NAME 
           ORDER BY t.DIRECTORY_NAME 
           FOR XML PATH('') 
          ), 1, 2, '') 
FROM _table tt 
GROUP BY VENDOR_NAME; 
+0

- 谢谢你。它的工作原理 –

+0

我如何获得订单条款中的DIRECTORY_NAME? –

+0

@MidhunCM'ORDER BY'加入 – anatol

1

试试这个,

DECLARE @TEMP VARCHAR(MAX)=''; 
SELECT @[email protected]+DIRECTORY_NAME+', ' FROM YOURTABLE 
SELECT VENDOR_NAME,@TEMP FROM YOURTABLE 
GROUP BY VENDOR_NAME 
相关问题