[英]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,','))來計算逗號的數量
但是,仍然沒有運氣。任何幫助將不勝感激。 謝謝。
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.