連接逗號分隔的資料列
要連接兩個包含逗號分隔資料列的表,請考慮以下操作方法:
標準化
透過為每個值建立一個單獨的欄位來標準化包含逗號分隔值的表。這簡化了查詢並避免了複雜的字串操作。
建立分割函數
建立一個分割函數,將逗號分隔的字串轉換為單獨的行。這允許您對行執行聯接。
使用 FOR XML PATH 和 STUFF
使用 FOR XML PATH 將值連接成逗號分隔的字串和 STUFF刪除前導逗號。
直接申請 FOR XML PATH
直接將 FOR XML PATH 應用於資料以產生所需的輸出。
示例
將函數與連接
;with cte as ( select c.col1, t1.col2 from t1 inner join ( select t2.col1, i.items col2 from t2 cross apply dbo.split(t2.col2, ',') i ) c on t1.col1 = c.col2 ) select distinct c.col1, STUFF( (SELECT distinct ', ' + c1.col2 FROM cte c1 where c.col1 = c1.col1 FOR XML PATH ('')), 1, 1, '') col2 from cte c
用於XML 路徑和內容
select col1, ( select ', '+t1.col2 from t1 where ','+t2.col2+',' like '%,'+cast(t1.col1 as varchar(10))+',%' for xml path(''), type ).value('substring(text()[1], 3)', 'varchar(max)') as col2 from t2;
以上是如何連接具有逗號分隔列的表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!