- 論壇徽章:
- 0
|
本帖最后由 huangw425 于 2011-07-05 17:34 編輯
非常感謝LS給力的回復(fù),理解上LS應(yīng)該能將多記錄下有重復(fù)值的列更新為空,
我想將某個(gè)字段內(nèi)部重復(fù)的記錄值清空,我再描述詳細(xì)一點(diǎn)點(diǎn):
B列的值用逗號(hào)做分隔符
如表結(jié)構(gòu)有A、B兩列,共有兩條記錄,第1條記錄正常的,第2條記錄是異常的,更新前:
A B
1 a,b,c
2 a,b,a,c
希望將表里面像第2條記錄,有重復(fù)值a出現(xiàn)的地方都清理掉(當(dāng)然其他記錄重復(fù)的值可能是b或c),更新后:
A B
1 a,b,c
2 a,b,c
如果不是我的應(yīng)用比較特殊,
bbgg1983 的方法應(yīng)該可行,因?yàn)閿?shù)據(jù)時(shí)刻使用,所以希望不導(dǎo)出數(shù)據(jù)在一個(gè)SQL下能處理.
原本有想法用存儲(chǔ)過(guò)程,例如遍歷此字段的值,逐個(gè)分析對(duì)比分隔符里面值是否有重復(fù),有重復(fù)則substr掉其中一個(gè),但是這樣就要寫一個(gè)函數(shù)才能實(shí)現(xiàn)
不知道有哪位用過(guò)oracle下的正則表達(dá)式?jīng)],能用來(lái)實(shí)現(xiàn)這樣的需求不 ? |
|