正则表达式匹配字符串中的零

时间:2018-04-13 04:54:17

标签: sql regex oracle

我正在寻找正则表达式模式,只在字符串中找到零。 string的数字用逗号(,)分隔。

EG。

'0'
     '1,2,0,3'
     '10,2,0' 

请帮忙。 如果String有10或20,100等,那么它不应该返回匹配。 我将在过程中获取字符串作为输入,并且我想基于该字符串中存在的零写一些业务逻辑。数据库是Oracle 11G。

2 个答案:

答案 0 :(得分:1)

您可以在Oracle上尝试以下查询:

SELECT *
FROM yourTable
WHERE NOT REGEXP_LIKE(',' || col, ',[^0]')

答案 1 :(得分:1)

如果您的字符串仅包含数字,则可以使用XMLTABLE

SELECT count(CASE 
            WHEN to_number(column_value) = 0
                THEN 1
            END) AS contains_zero
FROM XMLTABLE('1,2,0,3');

此外,这样的LIKE语句应该有效WHERE ',' || string || ',' LIKE '%,0,%'

Demo