作者smlboby (波比)
标题Re: [SQL ] 字串去除重复值
时间Wed Feb 10 16:56:45 2016
--如果暂存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://webptt.com/cn.aspx?n=bbs/Database/M.1455094608.A.BC6.html
※ 编辑: smlboby (115.43.125.199), 02/10/2016 16:57:51
1F:→ bernachom: 我来试看看,谢谢前辈:) 02/11 10:42
2F:→ bernachom: 我最後有试出来耶,太强大啦..谢谢前辈指导 02/11 19:33