首頁 >資料庫 >mysql教程 >如何連接具有逗號分隔列的表?

如何連接具有逗號分隔列的表?

Susan Sarandon
Susan Sarandon原創
2025-01-03 05:04:40659瀏覽

How to Join Tables with Comma-Delimited Columns?

連接逗號分隔的資料列

要連接兩個包含逗號分隔資料列的表,請考慮以下操作方法:

標準化

透過為每個值建立一個單獨的欄位來標準化包含逗號分隔值的表。這簡化了查詢並避免了複雜的字串操作。

建立分割函數

建立一個分割函數,將逗號分隔的字串轉換為單獨的行。這允許您對行執行聯接。

使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn