Oracle Regex至少" 1"在系列比赛中

时间:2017-02-27 08:29:44

标签: sql oracle

我有一个与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上实现这一点?

3 个答案:

答案 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;