oracle sql判断是否数字?
可以用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]')) ; ----查询这个字段所有的纯数字列
oracle 中怎么判断是否为数字?
CREATE OR REPLACE Function Isnumeric(Str In Varchar2)
Return Number
Is
Begin
If Str Is Null
Then
Return 0;
Else
If Regexp_Like(Str, '^(-{0,1}+{0,1})[0-9]+(.{0,1}[0-9]+)$') --数值
/*(str, '^[0-9]*[1-9][0-9]*$') --正整数*/
Then
Return 1;
Else
Return 0;
End If;
End If;
End Isnumeric;
创建上面的函数,然后判断返回值是否是1,1则表示是数值,0则表示非数值
1.ORACLE中如何判断一个字段中存不存在非整数?2.如何判断该值是否为0.5-1.5-2.5以此类推.
select decode(instr('1', '.') + sign('1'), 1, 1, 0) from dual;
返回1是整数,否则不是
create or replace function f_isnumeric(cnt varchar2) return number asres number; flag number; beginif cnt is
null thenreturn 0;
end if; select to_number(cnt) into res from dual; select decode(instr(res, '.') + sign(res), 1, 1, 0) into flag from dual; if flag = 1 thenreturn 1; else return 0;
end if;
exception
when others then return 0;
end;
oracle如何判断一个数是不是整数呢?比如3.000和3.100,如何筛选出来3.100
select * from table where int-floor(int)0 --int就是你的表字段,floor(int)就是取整数,等同于3.100-30
当前名称:oracle怎么判断整数 oracle判断是否为小数
文章URL:http://lswzjz.com/article/hpeehg.html