Rumah > pangkalan data > tutorial mysql > Oracle 判断是否为数字型(金额型)

Oracle 判断是否为数字型(金额型)

WBOY
Lepaskan: 2016-06-07 17:22:26
asal
1571 orang telah melayarinya

在oracle中没有这样的方法,要实现判断是否为数字型需要自己写一个方法来实现。但也可以用其它方法:

在sql server,校验数据是否为数字型比较容易,有提供的方法可以使用:

ISNUMERIC

当是数字型,方法返回值为1;否则返回值为0

例:

select * from tablename where isnumeric(data) = 1

在Oracle中没有这样的方法,要实现判断是否为数字型需要自己写一个方法来实现。但也可以用其它方法:

方法一,用正则的方法:

使用 regexp_like

例:

select * from tablename where

regexp_like(trim(data),'^([\-]?[0-9]+\.[0-9]+)$|^([\-]?[0-9])+$|^([\-]?[0-9]{1}\.[0-9]+E[\-]?[0-9])+$')

这个正则分三部分:

1、^([\-]?[0-9]+\.[0-9]+)$

浮点型,包括带小数点的情况

2、^([\-]?[0-9])+$

整数型

3、^([\-]?[0-9]{1}\.[0-9]+E[\-]?[0-9])+$

科学计数法表示的数字

以上三部分均包括了负数的情况

注:regexp_like适用于oracle 10g及其之后的版本,之前的不适用。

方法二,用正则的方法:

使用translate方法

例:

select data,decode(trim(translate(trim(cdata),'0123456789.',' ')),'','is number','not number')

from tablename

但上面这个还不太完善,没有考虑负数,科学计数法表示,数据本身为空,,或对“.”的验证。

所以使用方法二的时候要注意,或修改之(写得比较完善有点麻烦,不如写个方法了)。

linux

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan