[SQL ] 字串去除重複值

看板Database (資料庫)作者 (Terry)時間8年前 (2016/02/06 01:13), 編輯推噓11(1109)
留言20則, 6人參與, 最新討論串1/2 (看更多)
資料庫名稱: 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

02/06 22:56, , 1F
想到的只有分段處理,把每一列值撈出來,依;分號拆陣列
02/06 22:56, 1F

02/06 22:56, , 2F
成再distinct掉
02/06 22:56, 2F

02/07 09:45, , 3F
每一列值撈出來,這是要做子查詢嗎??
02/07 09:45, 3F

02/07 22:24, , 4F
我想到的可能要寫成預儲程序
02/07 22:24, 4F

02/07 23:53, , 5F
Aa,ccff...長度都一樣的會,應該可以用subatring
02/07 23:53, 5F

02/08 09:54, , 6F
每個字串用分號隔開,字串長度可能會不一樣,唉,好麻煩
02/08 09:54, 6F

02/08 15:05, , 7F
寫自訂 .net函數吧...
02/08 15:05, 7F

02/08 15:54, , 8F
覺得這問題因該在前端就要避免,留到db來處理是蠻棘手
02/08 15:54, 8F

02/08 15:54, , 9F
的問題
02/08 15:54, 9F

02/09 00:00, , 10F
長度不一樣用substring就要配合charindex,慢慢拆解所有的;
02/09 00:00, 10F

02/09 00:00, , 11F
做法就跟1樓說的一樣
02/09 00:00, 11F

02/09 00:03, , 12F
拆完「;」,用Replace,將重復的取代掉,我想到的是這樣
02/09 00:03, 12F

02/12 17:22, , 13F
用正規表達式http://tinyurl.com/jbtbg8n
02/12 17:22, 13F

02/12 17:26, , 14F
關鍵字sql regex duplicate value
02/12 17:26, 14F

02/12 17:35, , 15F
([^;]+)(;[ ]*\1)*
02/12 17:35, 15F

02/12 18:09, , 16F
應該這樣才對/([^;]+;)([ ]*\1)*/g 最後一個分號再自
02/12 18:09, 16F

02/12 18:09, , 17F
己處理
02/12 18:09, 17F

02/12 18:16, , 18F
沒注意到重複三次的情況 /([^;]+;)([ ]*\1+)*/g
02/12 18:16, 18F

02/12 18:40, , 19F
想隔元素匹配的話參考這篇吧http://tinyurl.com/zaet6dr
02/12 18:40, 19F

02/12 20:01, , 20F
正規表達式超複雜..
02/12 20:01, 20F
文章代碼(AID): #1MjDXJUw (Database)
討論串 (同標題文章)
文章代碼(AID): #1MjDXJUw (Database)