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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-07 17:22:26
asal
1586 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

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