看板 Database 關於我們 聯絡資訊
--如果暫存Table不存在就Create IF OBJECT_ID(N'tempdb..#t) IS NULL CREATE TABLE #t ( grp varchar(200), col2 varchar(20) ) --存在就清空 ELSE DELETE FROM #t DECLARE @sql varchar(2000) SET @sql='' --組出 insert 暫存Table的語法(透過 union 去除重複欄位) SELECT @sql=@sql+ 'INSERT INTO #t SELECT '''+A欄位+''',''' +REPLACE(A欄位,';',''' UNION SELECT '''+A欄位+''',''')+'''; ' FROM 你的Table --將拆成多列的資料寫入暫存Table EXEC(@sql) --重新將多列資料組回成一個欄位 SELECT * ,STUFF(( SELECT ';'+col2 FROM #t WHERE grp=A欄位 FOR XML PATH('') ),1,1,'') AS newcol FROM 你的Table ※ 引述《bernachom (Terry)》之銘言: : 資料庫名稱: MS 2008R2 : 資料庫版本:2008 R2 : 內容/問題描述: : 請教一下,我有一個欄位的值,可能會是重複的 : 例如: : A欄位 : AA;AA;CC : DD;FF;FF : 我希望可以把重複的去除掉 : 變成 : A欄位 : AA;CC : DD;FF : 想了好久,請教一下,有什麼好方式能夠處理的嗎 : 謝謝指導了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.43.125.199 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1455094608.A.BC6.html ※ 編輯: smlboby (115.43.125.199), 02/10/2016 16:57:51
bernachom: 我來試看看,謝謝前輩:) 02/11 10:42
bernachom: 我最後有試出來耶,太強大啦..謝謝前輩指導 02/11 19:33