使用正则表达式验证一列仅包含数字

时间:2019-04-25 16:32:57

标签: sql regex oracle regexp-like

我需要验证oracle中只有一列具有数字(仅整数)。如果是,则将标志设置为1,否则设置为0。我试图在reg_exp以下使用(但即使对于连字符,也将标志设置为1):

CASE WHEN REGEXP_LIKE(Column_name,'\d\) THEN 1 ELSE 0 END

示例: 12345应该(正在运行,并且上面的代码将标志设置为1) -1234应该将标志设置为0(上面的代码将其设置为1) abcd应将标志设置为0(在这种情况下,上述代码正常工作) 123.23应将标志设置为0

2 个答案:

答案 0 :(得分:2)

如果要检查是否仅包含数字,请尝试

True

答案 1 :(得分:1)

您可以使用TRANSLATE功能

SELECT case when TRANSLATE(Column_name, 'X0123456789', 'X') is null
            then 1
            else 0
       end
FROM t;