‘壹’ sql判断是否为数字
不知道楼主的意思是不是要判断一个字段是否为纯数字还是说是否包含数字?
可以用oracle自带的正则表达式函数regexp_replace把数字全部取出来,然后计算数字的长度是否等于这个字段的长度,如果等于的话说明这个值全部是数字,如果不等于的话说明值里面包含非数字,测试语句如下:
select(regexp_replace('lss12345',
'[^0-9]'))
from
al;---取出值里面的全部数字
select
length('lss12345'),length(regexp_replace('lss12345',
'[^0-9]'))
from
al;
---查询出字段的长度和字段内数字的长度
select*
from
al
where
length('lss12345')
=
length(regexp_replace('lss12345',
'[^0-9]'))
;
----查询这个字段所有的纯数字列
‘贰’ sql:查询一个字段里面时不是全为数字
用ltrim
函数,如果提示未选定行,那么字段不全为数字,如果有返回值,那么全为数字
select
1
from
al
where
ltrim('12385x2','0123456789')
is
null
‘叁’ 用sql怎么查出某一字段中不是数字的值
写法如下:select*frommytablewherefieldlike'%查询的值%'具体替换表名和字段名
‘肆’ sql语句如何判断字段是否为数字
sql语句判断字段是否为数字可以参考下面的例子:
select * from biao where isnumeric(zian)=0 查非数回字答
select * from biao where isnumeric(zian)=1 查纯数字
(4)sql字段不是数字的值扩展阅读:
SQL参考语句
查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
‘伍’ sql语句 查询 非数字字符
把数字全部转化成ascii码 然后来判断。下面是个例子。
这题给5分太少了点,呵呵。
DECLARE @position int, @string char(15),@t_num varchar(50)
DECLARE cursor_r cursor for select t_num from tab2
open cursor_r
fetch next from cursor_r into @string
begin
while @@fetch_status =0
begin
--print @string
SET @position = 1
WHILE @position <= len(@string)
BEGIN
set @t_num =ASCII(SUBSTRING(@string, @position, 1))
if @t_num<48 or @t_num>57
begin
insert into tab3 (t_num) values(@string)
break
end
SET @position = @position + 1
END
fetch next from cursor_r into @string
end
close cursor_r
deallocate cursor_r
end
这题给5分太少了点,呵呵。正好我以前写过,就无私奉上了。
‘陆’ oracle如何判断某个字段的值是不是数字
1、创建测试表,
create table test_isnum(id number, value varchar2(20));
‘柒’ sql 去除字段中非数字字符
思路:找到第二个$,更新数据为$后面的
实例:
UPDATE A
SET A.a1 = (
SUBSTR(a1, INSTR(a1, $, '2') + 1, LENGTH(a1))
)
‘捌’ 在oracle中,如何用一条select语句查询字段中非纯数字值
--1.正则判断,适用于10g以上版本
--非正整数
select字段from表whereregexp_replace(字段,'d','')isnotnull;
--非数值类型
select字段from表whereregexp_replace(字段,'^[-+]?d+(.d+)?$','')isnotnull;
--2.自定义函数,判断非值类型
(colvarchar2)returnintegeris
inumber;
begin
i:=to_number(col);
return1;
exception
whenothersthen
return0;
end;
select字段from表whereisnumber(字段)=0;
‘玖’ SQL里如何查询一个字段里不是数字类型的值出来
select * from 表 where isnumeric(字段) = 1
isnumeric(字段),如果为数字,则返回1,如果不为数字,则返回0~~~
‘拾’ 怎么用SQL判断字段值是否为字符或者数字
在不改变你SQL的基础上再加一个 LEFT(col1,1)<>'-'
select * from tb
where
ISNUMERIC(col1)>0 and LEFT(col1,1)<>'-'
---
ISNUMERIC(col1)>0这个本身就将资料过滤为只有数字(正数或负数,没有你说的其他符号了),在其基础上再将负数的情况过滤掉就OK了