作者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/cn.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