簡體   English   中英

如何在T-SQL中拆分逗號分隔的重復字符串

[英]How to split repeating string delimated by commas in T-SQL

我已經嘗試過一些試驗,但還不能解決。 任何幫助,將不勝感激。

我有一張下面的桌子。

LocationID       Project Name
1                A,A
1                A
1                A,B,C
1                A,C
1                B,C
1                C
2                A
2                C,D,E
2                E,F
2                F
3                G,H
3                H

我正在尋找的結果是。 它會刪除所有重復項,並僅保留具有其關聯ID的不同值。

LocationID       Project Name
1                A
1                B
1                C
2                A
2                C
2                D
2                E
2                F
3                G
3                H

我試圖用(len(replace(@ProjectNames,','))來計算逗號的數量

使用http://www.logiclabz.com/sql-server/split-function-in-sql-server-to-break-comma-separated-strings-into-table.aspx中的拆分功能

但是,仍然沒有運氣。任何幫助將不勝感激。 謝謝。

declare @T table(LocationID int, PName varchar(50))

insert into @T values
(1,                'A,A'),
(1,                'A'),
(1,                'A,B,C'),
(1,                'A,C'),
(1,                'B,C'),
(1,                'C'),
(2,                'A'),
(2,                'C,D,E'),
(2,                'E,F'),
(2,                'F'),
(3,                'G,H'),
(3,                'H')

select distinct
  T.LocationID,
  r.value('.', 'varchar(50)') as [Project Name]
from @T as T
  cross apply
    (select cast('<r>'+replace(PName, ',', '</r><r>')+'</r>' as xml)) as x(x)
  cross apply
    x.nodes('r') as r(r)

嘗試選擇不同的。

如果使用mysql,則可以使用group_concat()函數重新組合不同的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM