oracle sql判断是否数字?

大哥在线求帮请讲解下,oracle sql判断是否数字?
最新回答
依旧殇心

2024-05-10 01:33:22

可以用oracle自带的正则表达式函数REGEXP_REPLACE把数字全部取出来,然后计算数字的长度是否等于这个字段的长度,如果等于的话说明这个值全部是数字,如果不等于的话说明值里面包含非数字,测试语句如下:

SELECT(REGEXP_REPLACE('LSS12345', '[^0-9]')) FROM DUAL;---取出值里面的全部数字

SELECT LENGTH('LSS12345'),LENGTH(REGEXP_REPLACE('LSS12345', '[^0-9]')) FROM DUAL; ---查询出字段的长度和字段内数字的长度

SELECT* FROM DUAL  WHERE LENGTH('LSS12345') = LENGTH(REGEXP_REPLACE('LSS12345', '[^0-9]')) ;  ----查询这个字段所有的纯数字列