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