sql判断是否为数字

2024-11-16 04:39:09
推荐回答(2个)
回答(1):

不知道楼主的意思是不是要判断一个字段是否为纯数字还是说是否包含数字?
可以用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]'))
;
----查询这个字段所有的纯数字列

回答(2):

sqlserver判断是否为数字的函数
ISNUMERIC
确定表达式是否为一个有效的数字类型。

语法
ISNUMERIC ( expression )

参数
expression

要计算的表达式。

返回类型
int

注释
当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。