oracle如何判断字段有数字 oracle判断字段是否包含字母

oracle如何判断某个字段的值是不是数字

1、创建测试表,

朔城网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。成都创新互联公司成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

create table test_isnum(id number, value varchar2(20));

2、插入测试数据,

insert into test_isnum values(1,'a');

insert into test_isnum values(2,329);

insert into test_isnum values(4,'15');

insert into test_isnum values(6,'2c');

commit;

3、查询表中所有记录,select t.*, rowid from test_isnum t,

4、编写sql,判断value字段,记录为数字的内容,

select t.*,

 case

   when not regexp_like(value, '\D') then

    '是'

   else

    '否'

 end as "是否数字"

from test_isnum t;

oracle中判断某个字段是否有数据

select

count(主键)

,count(字段)

from

where

条件

如果两个都为0,数据不存在,

如果前面不为0,后面为0,有数据,但是那个字段为空。

在oracle下如何判断一个字段是否含有数字

用正则判断把

select * from table1 where regexp_like(ziduan,'.*\d')0

只要有一个数字,就会被选出来。

oracle判断字符串是否为数字

1、通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')

2、调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常

3、调用translate函数,剔除所有[0-9]数字后,看是否为空串

4、调用正则表达式,进行模式匹配(10g版本新加入的功能)

--通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')

DECLARE

str             VARCHAR2(10) := '123a';

val             NUMERIC(10);

i               int;

k               int;

flag            BOOLEAN;

BEGIN

flag := TRUE;

for i in 1..10 loop   --新密码是否6位数字

k := ascii(substr(str, i, 1));

if k  48 or k  57 THEN

flag := FALSE;

end if;

end LOOP;

IF flag = true THEN

dbms_output.put_line(str || '是[0-9]的数字序列');

ELSE

dbms_output.put_line(str || '不是[0-9]的数字序列');

END IF;

END;

-- 调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常

DECLARE

str    VARCHAR2(10) := '123';

val    NUMERIC(10);

BEGIN

val := CAST(str AS NUMERIC);

dbms_output.put_line(str || '是[0-9]的数字序列');

EXCEPTION

WHEN value_error THEN -- 字符串转实数错误

--dbms_output.put_line(SQLCODE || ', ' || SQLERRM);

dbms_output.put_line(str || '不是[0-9]的数字序列');

END;

--调用translate函数,剔除所有[0-9]数字后,看是否为空串

DECLARE

str VARCHAR2(10) := '123abc';

BEGIN

IF replace(translate(str, '0123456789', '0'), '0', '') IS NULL THEN

dbms_output.put_line(str || '是[0-9]的数字序列');

ELSE

dbms_output.put_line(str || '不是[0-9]的数字序列');

END IF;

END;

--调用正则表达式,进行模式匹配(10g版本新加入的功能)

SELECT *

FROM dual

WHERE regexp_like('1234', '^[[:digit:]]+$');

--从任意字符串中提取数字串(调用2次translate函数)。

--假定初始串为str。首先将str中数字全部替换为空格,输出记为str2;

--其次,对每个在str中出现的任意str2串中字符,如果是str2的首字符则替换为空格,其它字符则全部剔除

DECLARE

--str    VARCHAR2(100) := ' 护照01浙江2     3昆 山4苏 3';

str    VARCHAR2(100) := ' 护照浙江     昆 山苏 4';

ret    VARCHAR2(10);

BEGIN

ret := TRIM(TRANSLATE(str, trim(TRANSLATE(str, '1234567890', '          ')), ' '));

dbms_output.put_line(ret);

END;


分享标题:oracle如何判断字段有数字 oracle判断字段是否包含字母
当前地址:http://pwwzsj.com/article/hgdsgh.html