oracle怎麼在字元欄位中查出只包含數字的資料

2021-10-05 03:07:35 字數 2601 閱讀 2491

1樓:匿名使用者

如果你的條件不允許你寫plsql函式的話,就用正規表示式,如下:

select *

from table

where regexp_substr(check, '^[0-9\.\-]\d*\.\d+$') is not null;

2樓:

你應該希望提取的欄位只要含有數字就提出,剔除空和不含數字的字串。

select * from table where regexp_substr(check,'[0-9]+') is not null

3樓:bolibei玻璃

declare   v_length  number default 0;

t_sum    number default 0;

t_num    number default 0;

t_is_num number default 0;

v_str    tmp_xyx26.t2%type;

cursor t_cur is select t2 from tmp_xyx26 where regexp_substr(t2, '[0-9]+') is not null;

begin  open t_cur;

loop    fetch t_cur      into v_str;

exit when t_cur%notfound;    t_sum := 0;

select length(v_str) into v_length from dual;

for i in 1 .. v_length loop    select ascii(substr(v_str, i, 1)) into t_is_num from dual;

if t_is_num between 48 and 57 then   select substr(v_str, i, 1) into t_num from dual;

t_sum := t_sum + t_num;

else null;

end if;

end loop;

dbms_output.put_line;

end loop;

close t_cur;

end;

4樓:吾兒樑龍慶

select * from tablename where check<> regexp_replace(check,'[^0-9]');

目前我就想到這個方法

在oracle中,如何用一條select語句查詢欄位中非純數字值

5樓:匿名使用者

--1.正則判斷,適用於10g以上版本

--非正整數

select 欄位 from 表 where regexp_replace(欄位,'\d','') is not null;

--非數值型別

select 欄位 from 表 where regexp_replace(欄位,'^[-\+]?\d+(\.\d+)?$','') is not null;

--2.自定義函式,判斷非值型別

create or replace function isnumber(col varchar2) return integer is

i number;

begin

i := to_number(col);

return 1;

exception

when others then

return 0;

end;

select 欄位 from 表 where isnumber(欄位)=0;

6樓:匿名使用者

where isnumeric(欄位)>0 是純數字的

where ( isnumeric(欄位)<0 or 欄位為null)非純數字的值,包括空值

7樓:匿名使用者

create function is_integer(in_varchar in varchar2) return integer as

flag integer;

i    integer;

begin

for i in 1 .. length(in_varchar) loop

if ascii(substr(in_varchar,i,1))>= 48 and

ascii(substr(in_varchar,i,1))<= 57 then

flag:= 0;

else

flag:= -1;

exit;

end if;

end loop;

return flag;

end is_integer;

自己親測,有圖有真相,希望能幫助到你。

8樓:匿名使用者

select *

from table_name

where translate(column_name,'#0123456789','#') is not null or column_name is null

oracle查某欄位記錄,oracle查某欄位記錄

最小的n條記錄 select from 表 where rownum n order by number 最大的n條記錄 select from 表 where rownum n order by number desc 用視窗函式 排序,然後查詢 很簡單的 select from select r...

在oracle中怎麼查詢某個欄位的長度

select from 表名 where length nvl 欄位,1 order by 欄位 例如 一個列裡面有長短不一的數字如何判斷數字的長度 如 i code 使用select i code from tablename where length i code 4。即可算出答案 另外,一個漢...

在oracle資料庫中,怎樣查詢出只有欄位的表的重複資料

方法一 可以通過group by 進行分組。sql select username,count username from tablename grop by username 解釋 以上sql就是通過分組函式讀版取出tablename表中username的值和每個不 權同值的統計個數。方法二 可以...