2015-10-16 44 views
0

我從桌子C上兩個行值:串聯多個值成一個字符串作爲一個子查詢,而無需使用可變

Select Name FROM Table C Where AccountID = 123 

 COL1 
 
Row 1 |Ricky| 
 
Row 2 |Roxy |

我希望能夠選擇兩個這兩個值在子查詢中將用於更大的查詢中。因此它顯示「Ricky,Roxy」

如何在不聲明變量的情況下做到這一點?

+2

谷歌: 「SQL服務器字符串聚集」 –

+1

http://sqlperformance.com/2014/08/t-sql-queries/sql-server-grouped-concatenation –

+0

那麼如果我是使用變量? –

回答

0
SELECT COL1 = STUFF ((SELECT ',' + COL1 FROM tableC WHERE AccountID=123 
FOR XML PATH(''), Type).value('.[1]','nvarchar(max)'), 
1,1,'') 

這將返回所有帳戶123 COL1值作爲一列,用逗號分隔值。

這裏是一個SQL Fiddle

+0

我得到一個語法錯誤 –

+0

@SebastianRoces很難說爲什麼不知道你的表模式。我用SQL小提琴更新了我的答案,顯示它在SQL Server 2008中有效。 –

相關問題