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

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

Susan Sarandon
發布: 2025-01-03 05:04:40
原創
621 人瀏覽過

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

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