『壹』 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了