我從桌子C上兩個行值:串聯多個值成一個字符串作爲一個子查詢,而無需使用可變
Select Name FROM Table C Where AccountID = 123
COL1
Row 1 |Ricky|
Row 2 |Roxy |
我希望能夠選擇兩個這兩個值在子查詢中將用於更大的查詢中。因此它顯示「Ricky,Roxy」
如何在不聲明變量的情況下做到這一點?
我從桌子C上兩個行值:串聯多個值成一個字符串作爲一個子查詢,而無需使用可變
Select Name FROM Table C Where AccountID = 123
COL1
Row 1 |Ricky|
Row 2 |Roxy |
我希望能夠選擇兩個這兩個值在子查詢中將用於更大的查詢中。因此它顯示「Ricky,Roxy」
如何在不聲明變量的情況下做到這一點?
SELECT COL1 = STUFF ((SELECT ',' + COL1 FROM tableC WHERE AccountID=123
FOR XML PATH(''), Type).value('.[1]','nvarchar(max)'),
1,1,'')
這將返回所有帳戶123 COL1值作爲一列,用逗號分隔值。
這裏是一個SQL Fiddle
我得到一個語法錯誤 –
@SebastianRoces很難說爲什麼不知道你的表模式。我用SQL小提琴更新了我的答案,顯示它在SQL Server 2008中有效。 –
谷歌: 「SQL服務器字符串聚集」 –
http://sqlperformance.com/2014/08/t-sql-queries/sql-server-grouped-concatenation –
那麼如果我是使用變量? –