oracle關於模糊查詢的問題

2021-06-01 08:43:13 字數 673 閱讀 8501

以前模糊查詢使用的是:like

例如(schema kmh_qc):

select v.unitprice, v.unit, v.storage, v.stationeryname, v.stationeryid,

v.modelsize, v.classname, v.classid

from v_wjqc_storage v

where v.stationeryname like '%'||#stationeryname#||'%';

問題:當傳遞進去的stationeryname值是'%'或者'_'時,它會查出所有資訊。

解決方案:條件換為:instr(v.stationeryname,#stationeryname#) > 0

'_'通配乙個字元,'%'通配n個字元,這是sql的基本語法就有!

例如:傳入引數為"_成_",表達的意思是查詢三個字的,並且中間那個字是"成"的."_"可以出現多次,每出現一次代通配乙個字元.

傳入引數為"%成",表達的意思是最後個字是為"成"的.

傳入引數為"%成%",表達的意思是只要包含"成"的都顯示.

傳入引數為"成%",表達的意思是第乙個字是為"成"的.

同時"%"和"_"還可以配合使用:

例如:傳引數為"_成%"表示第二字為"成"的都顯示.

非常靈活,自由組合.

Oracle 模糊查詢

在where子句中,可以對datetime char varchar欄位型別的列用like子句配合萬用字元選取那些 很像.的資料記錄,以下是可使用的萬用字元 零或者多個字元 單一任何字元 下劃線 特殊字元 在某一範圍內的字元,如 0 9 或者 aeth 不在某範圍內的字元,如 0 9 或者 aeth...

oracle 模糊查詢

oracle10g以上支援正規表示式的函式主要有下面四個 1,regexp like 與like的功能相似 2,regexp instr 與instr的功能相似 3,regexp substr 與substr的功能相似 4,regexp replace 與replace的功能相似 posix 正規表...

oracle模糊查詢

執行資料庫查詢時,有完整查詢和模糊查詢之分。一般模糊語句格式如下 select 字段 from 表 where 某欄位 like 條件 其中,關於條件,sql提供了四種匹配模式 1 表示零個或多個字元。可以匹配任意型別和任意長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select ...