首頁 > 資料庫 > mysql教程 > 如何基於公共識別碼連接多個 SQL 值?

如何基於公共識別碼連接多個 SQL 值?

DDD
發布: 2024-12-30 22:21:10
原創
160 人瀏覽過

How to Concatenate Multiple SQL Values Based on a Common Identifier?

使用SQL 基於通用識別碼連接多個值

假設您有一個包含兩列的表:Response_ID 和Label,其中多個Label值可以與每個Response_ID相關聯。您可能會遇到需要連接每個唯一 Response_ID 的所有標籤值的情況。

這可以使用以下SQL 語句來實現:

-- Sample data
declare @T table(Response_ID int, Label varchar(50))
insert into @T values
(12147,          'It was not clear'),
(12458,          'Did not Undersstand'),
(12458,          'Was not resolved'),
(12458,          'Did not communicate'),
(12586,          'Spoke too fast'),
(12587,          'Too slow')

-- Query to concatenate Label values
select T1.Response_ID,
       stuff((select ','+T2.Label
              from @T as T2
              where T1.Response_ID = T2.Response_ID
              for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label
from @T as T1
group by T1.Response_ID
登入後複製

說明:

  • 子查詢(select ',' T2.Label ...) 將每個Response_ID 的Label 值連接成單一字串,用逗號分隔。 for xml path(''), type 子句將連接的字串轉換為 XML 片段。
  • .value('.', 'varchar(max)') 部分處理Label 包含以下字元的情況可能會導致XML 解析錯誤,例如&.
  • stuff(...)函數會刪除連接的前導逗號字串。
  • 最後,group by 子句聚合每個唯一 Response_ID 的串聯標籤值。

結果將是一個表,每個 Response_ID 一行,以及串聯標籤值以逗號分隔。

以上是如何基於公共識別碼連接多個 SQL 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板