Oracle 常見函式使用彙總

2021-09-22 20:39:38 字數 3365 閱讀 2691

instr用法:instr(string,substring,position,ocurrence)

解釋:string:源字串

substring:要查詢的子字串

position:查詢的開始位置.若起始位置為0,返回值為0,因為下標是從1 開始的,起始位置為0,則表示不查詢。既然不查詢,就直接返回0,表示找不到了嘍;當起始位置為負數的時候,從右邊開始查詢。

ocurrence:源字串中第幾次出現的子字串

返回找到的位置(字串下標是從0開始,如果查詢到),如果找不到則返回0. 預設查詢順序為從左到右。

select instr('

corporate floor

', '

or', 0, 1) from dual; --

返回值為0

select instr('

corporate floor

', '

or', 2, 1) from dual; --

返回值為2

select instr('

corporate floor

', '

or', 3, 1) from dual; --

返回值為5

select instr('

corporate floor

', '

or', 2, 2) from dual; --

返回值為5

select instr('

corporate floor

', '

or', -

1, 1) from dual; --

返回值為14

select instr('

corporate floor

', '

or', -

5, 1) from dual; --

返回值為5

substr用法:substr(string,start_position,[length] ) 求子字串,返回字串

解釋:string 元字串

start_position   開始位置(從1開始,如果寫0,意義等同於1,即從第乙個字元開始

如果是負數,則開始位置則從字串末端開始從右到左數,但根據length擷取字串時,仍然

採取從左至右數length個的字元

)length 可選項,子字串的個數

select substr('

this is a test

', 0, 2) value from dual; --

返回值th

select substr('

this is a test

', 1, 2) value from dual; --

返回值th

select substr('

this is a test

', -

1, 2) value from dual; --

返回值t,因為擷取時,仍採取從左至右,因為只有乙個字元t,就返回乙個t

select substr('

this is a test

', -

2, 2) value from dual; --

返回值st

nvl用法:nvl(eexpression1, eexpression2)

從兩個表示式返回乙個非 null 值。如果eexpression1的計算結果為null值,則 nvl( ) 返回eexpression2。如果eexpression1的計算結果不是null值,則返回eexpression1。eexpression1 和eexpression2可以是任意一種資料型別。如果eexpression1與eexpression2 的結果皆為 null值,則nvl( )返回null。

select nvl('

pos1

',null) from dual; --

返回值為pos1

select nvl(null,'

pos2

') from dual; --

返回值為pos1

select nvl(null,null) from dual; --

返回值為null,即使用 is null進行判斷時,會返回true

select sysdate from

dual

where nvl(null,null) is

null;--

返回2016/5/27 23:58:54

在oracle中,不等號有三種:<>,!=,^=

例如:select * from test where name<>'xn'。返回的結果是name不為xn,且name不空的記錄。但是這與我們想要得到的結果有出入,因為我們的目的是得到name為xn的全部記錄,當然這也包括name為空的記錄,所以這些寫sql語句是有問題的。為了解決這個問題,我們可以採用以下兩種方案:

select * from test where instr(concat(name,'xx'),'xn') = 0; select * from test where nvl(name,'xx')<>'xn' ;

備註:null只能通過is null或者is not null來判斷,其它操作符與null操作都是false。

各資料庫中的字串連線方法

1)mysql:concat()

2)oracle:concat(),||

3)sql server: +

例如:

select 'this is '+'a test'; 返回值this a test select concat('this is ','a test') fromdual; 返回值this a test select 'this is '||'a test' from dual; 返回值this a test

指標使用彙總

include int main include include void f int p 3 4 原始型別 void f int p 4 省略第一維長度 void f int p 4 指標 指向乙個陣列,陣列中的每個元素是int型別 void f int p error 不能將第二維退化為指標 v...

Tomcat使用彙總

使用tomcat部署web應用一定要重啟!重啟!重啟。搞了三天的web程式部署,倒在了tomcat上,記錄這幾天使用的心得,防止自己下次再犯。tomcat伺服器檔案的結構 server.xml被稱為tomcat的主配置檔案或者全域性配置檔案,他主要完成 1.提供tomcat元件的初始配置 2.說明t...

adb shell dumpsys 使用彙總

一 activity和broadcast行為不正常時,如何抓取log?1 請使用mtklog抓取,保證有main log和event log產生 2 對於activity行為不正常,請開啟activity的log開關再抓取 adb shell dumpsys activity log a on 這個...