1樓:匿名使用者
select * from table t where regexp_like(t.col,'特殊字元')
2樓:匿名使用者
select * from table t where t.col like '%m%' escape 『m'
使用escape定義轉義符
在使用like關鍵字進行模糊查詢時,「%」、「_」和「」單獨出現時,會被認為是萬用字元。為了在字元資料型別的列中查詢是否存在百分號(%)、下劃線(_)或者方括號()字元,就需要有一種方法告訴dbms,將like判式中的這些字元看作是實際值,而不是萬用字元。關鍵字escape允許確定一個轉義字元,告訴dbms緊跟在轉義字元之後的字元看作是實際值。
如下面的表示式:
like '%m%' escape 『m』
使用escape關鍵字定義了轉義字元「m」,告訴dbms將搜尋字串「%m%」中的第二個百分符(%)作為實際值,而不是萬用字元。當然,第一個百分符(%)仍然被看作是萬用字元,因此滿足該查詢條件的字串為所有以%結尾的字串。
oracle怎麼在字元欄位中查出只包含數字的資料
3樓:匿名使用者
如果你的條件不允許你寫plsql函式的話,就用正規表示式,如下:
select *
from table
where regexp_substr(check, '^[0-9\.\-]\d*\.\d+$') is not null;
4樓:
你應該希望提取的欄位只要含有數字就提出,剔除空和不含數字的字串。
select * from table where regexp_substr(check,'[0-9]+') is not null
5樓: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;
6樓:吾兒樑龍慶
select * from tablename where check<> regexp_replace(check,'[^0-9]');
目前我就想到這個方法
用oracle如何查詢出表中的欄位內容包含另表中的某個欄位的值呢
描述再詳細些,這兩個表的欄位是否以知,確定,如果能確定是哪連個欄位可用如下sql select from table1 where exists select 1from table2 where table1.columa like table2.columb 如果不確定想要所有匹配,那就寫儲存過...
oracle已經建好的表怎麼修改欄位大小
根據欄位型別決定 alter table 表名 modify 欄位名 varchar2 長度 或 alter table 表名 modify 欄位名 number 長度 只能改大。想改小隻能重新建表將資料導到新表,再將舊錶drop掉。 alter table a modify id number 2...
select into怎麼用,oracle 中select into是什麼意思
龍之喵喵豬 elect into語句從一個表中選取資料,然後把資料插入另一個表中。把所有的列插入新表 select into new table name from old tablename select into 語句可用於建立表的備份復件。學習,是指通過閱讀 聽講 思考 研究 實踐等途徑獲得知...