我有中获取正确的数据列的麻烦,使用正则表达式在甲骨文11“正则表达式样” Oracle中返回结果不准确
列是varchar类型,看起来像这样:
2216xxxx
20xxxx
2355xxxx
2128xxxx
213xxxx
692xxxx
我使用的查询的该部分:
regexp_like (column_name, '^(?216*|?213*|?218*|?212*|?249*|?20*)')
以滤除与20,216,213,218,与这些前缀开始212和249,或者开始的行,之前是2(例如。 220,2216,2213等),但在结果中,我也获得了以2355开始的记录。
我确信我对正则表达式犯了一些错误,但我无法找到它。
一些帮助将不胜感激。
P.S
我知道我可以用一系列的“or column_name like...
”去,但我认为使用regexs会是一个更好的解决方案
''表示? “0或1的一个组或字符 - 尝试删除所有'?',看看会发生什么 –
@MacroMan我试图删除它,但我仍然从2355开始获取这些记录。当我第一次添加?时,我想包括2,在某些情况下碰巧是这样,而在另一些情况下则不是...... – gm08