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的值和每個不 權同值的統計個數。方法二 可以...