基於 ID 連接值
在資料操作中,通常需要將多行資料組合成單一字串。這可以透過串聯來實現,其中字串由較小的片段組裝而成。
問題陳述:
您有一個名為「結果」的表,其中有兩列:「 Response_ID」和「標籤」。每個“Response_ID”對應多個“Label”值。您的目標是產生一個新表,其中每個“Response_ID”一行,所有“標籤”值連接成一個字串,並用逗號分隔。
解決方案:
要根據「Response_ID」連接值,您可以使用以下SQL查詢:
select T1.Response_ID, stuff((select ','+T2.Label from Results as T2 where T1.Response_ID = T2.Response_ID for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label from Results as T1 group by T1.Response_ID
解釋:
Stuff():此函數連接字串。它採用以下參數:
範例:
考慮以下內容表:
Response_ID | Label |
---|---|
12147 | It was not clear |
12458 | Did not Understand |
12458 | Was not resolved |
12458 | Did not communicate |
12586 | Spoke too fast |
12587 | Too slow |
上面的查詢將產生以下輸出:
Response_ID | Label |
---|---|
12147 | It was not clear |
12458 | Did not Understand,Was not resolved,Did not communicate |
12586 | Spoke too fast |
12587 | Too slow |
注意:連接字串的順序可能並不總是可預測的。為了精確控制順序,可以在子查詢中使用「ORDER BY」語句。
以上是如何在 SQL 中將多行連接成單一字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!