我有一个与oracle sql regex函数相关的问题。
我有一系列零和一些。它可以变化为:
例如:
1111000
000001
0101111
10000
如果至少有一个" 1"在这个系列中,然后我想输出" 1" 否则我想要输出" 0"。所以我尝试了类似的东西:
SELECT REGEXP_REPLACE('1,1,1,0','[0,]||[1]+','') FROM DUAL
然而,这只是输出" 1"超出" 0"
的系列所以我的问题:如何在oracle sql上实现这一点?
答案 0 :(得分:3)
如果我理解得很好,你只需要检查一个字符串是否包含'1',你可能不需要正则表达式,而INSTR
就足够了:
select case
when instr(yourString, '1') = 0
then '1 is not in the string'
else '1 is in the string'
end
from dual
答案 1 :(得分:0)
`LIKE%1%'也适合你......
{{1}}
答案 2 :(得分:0)
后来我也发现这对我也有用:
SELECT
REGEXP_REPLACE( 'MY_STRING' , '.?+1?[0,]', '') as COLUMN_NAME
FROM dual;