我有
'VA - HRD 1, VA - HRD 1, VA - NOVA 1, VA - NOVA 1'
想要
'VA - HRD 1, VA - NOVA 1'
我正在尝试
regexp_replace( 'VA - HRD 1, VA - HRD 1, VA - NOVA 1, VA - NOVA 1' ,'([^,]+)(,\1)+', '\1')
但它不会删除所有重复项,而是会产生:VA - HRD 1, VA - HRD 1, VA - NOVA 1
请帮忙......
答案 0 :(得分:8)
([^,]+)(,[ ]*\1)+
试试这个。这很有效。见演示。
http://regex101.com/r/yG7zB9/8
问题是VA - HRD 1, VA - HRD 1
^ ^
这里的空间。你没有考虑到这一点,因为第一场比赛没有任何空格,所以。所以inlcde [ ]*
或\s*
让它接受。
答案 1 :(得分:1)
Select replace(REGEXP_REPLACE('1234567890,2220006789,2220006789,477-000-6789','([^,]+)(,[ ]*\1)+'),',,',',')
As [columnName] From [tableName]