我需要验证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
答案 0 :(得分:2)
如果要检查是否仅包含数字,请尝试
True
答案 1 :(得分:1)
您可以使用TRANSLATE
功能
SELECT case when TRANSLATE(Column_name, 'X0123456789', 'X') is null
then 1
else 0
end
FROM t;