作者bernachom (Terry)
看板Database
標題[SQL ] 字串去除重複值
時間Sat Feb 6 01:13:52 2016
資料庫名稱: MS 2008R2
資料庫版本:2008 R2
內容/問題描述:
請教一下,我有一個欄位的值,可能會是重複的
例如:
A欄位
AA;AA;CC
DD;FF;FF
我希望可以把重複的去除掉
變成
A欄位
AA;CC
DD;FF
想了好久,請教一下,有什麼好方式能夠處理的嗎
謝謝指導了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.49.13
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Database/M.1454692435.A.7BA.html
1F:推 cyr1216: 想到的只有分段處理,把每一列值撈出來,依;分號拆陣列 02/06 22:56
2F:→ cyr1216: 成再distinct掉 02/06 22:56
3F:→ bernachom: 每一列值撈出來,這是要做子查詢嗎?? 02/07 09:45
4F:推 cyr1216: 我想到的可能要寫成預儲程序 02/07 22:24
5F:推 bv5gt: Aa,ccff...長度都一樣的會,應該可以用subatring 02/07 23:53
6F:→ bernachom: 每個字串用分號隔開,字串長度可能會不一樣,唉,好麻煩 02/08 09:54
7F:推 Adonisy: 寫自訂 .net函數吧... 02/08 15:05
8F:推 likesp999: 覺得這問題因該在前端就要避免,留到db來處理是蠻棘手 02/08 15:54
9F:→ likesp999: 的問題 02/08 15:54
10F:推 bv5gt: 長度不一樣用substring就要配合charindex,慢慢拆解所有的; 02/09 00:00
11F:→ bv5gt: 做法就跟1樓說的一樣 02/09 00:00
12F:推 bv5gt: 拆完「;」,用Replace,將重復的取代掉,我想到的是這樣 02/09 00:03
14F:→ vi000246: 關鍵字sql regex duplicate value 02/12 17:26
15F:推 vi000246: ([^;]+)(;[ ]*\1)* 02/12 17:35
16F:推 vi000246: 應該這樣才對/([^;]+;)([ ]*\1)*/g 最後一個分號再自 02/12 18:09
17F:→ vi000246: 己處理 02/12 18:09
18F:推 vi000246: 沒注意到重複三次的情況 /([^;]+;)([ ]*\1+)*/g 02/12 18:16
20F:→ bernachom: 正規表達式超複雜.. 02/12 20:01