oracle 12c 通用函式

2021-08-20 12:56:31 字數 2639 閱讀 2897

本節主要學習內容為通用函式,包括如下圖所示

說明

nvl為式1為null值以外的數是式1,null 值得時候則為式2

if(式1 != null) 

else

寫法

nvl(式1,式2)

-----------

eg:select ename,sal,sal+nvl(comm,0)

from employees

/*當獎金為null,設定為0*/

注意說明nvl為式1為null值以外的數是式2,null 值得時候則為式3

if(式1 != null) 

else

寫法

nvl2(式1,式2,式3)

-----------

eg:select ename,sal,sal+nvl(comm,10000,0)

from employees

/*當獎金為null,設定為0,否則為10000*/

注意說明nullif為式1與式2相比較,相等的情況下為null,不相等的情況下為式1;

if(式1 == 式2) 

else

寫法

nullif(式1,式2)

-----------

eg:select ename,sal,nullif(comm,sal/10)

from employees

sql> select nullif(50,50) from dual;

nullif(50,50)

-------------

sql> select nullif(50,30) from dual;

nullif(50,30)

-------------

50

注意說明coalesce返回表示式列表中的第乙個非null expr。 必須指定多個表示式。 如果所有expr的計算結果都為null,則該函式返回null。

if(式1 == null) else

if(式2 == null)

...else

if(式n == null) else

寫法

coalesce(式1,式2[,式n])

-----------

eg:select eno,ename, nickname,coalesce(ename,nickname,to_char(eno))

from employees

/*查詢名稱,如果名字為空,則為暱稱,如果暱稱也為空,則是id*/

注意說明使用case表示式,可以在不呼叫過程的情況下使用sql … then … else邏輯。

switch( 式 )
寫法

case 式 when 條件式1 then 數值1

[when 條件式2 then 數值2]

[when 條件式3 then 數值3...]

else 數值4

end-----------

eg:select ename,sal,(case

when sal < 230000

then

'a'when sal < 380000

then

'b'end) sal_level

from employees;

/*規定不同的工資等級*/

注意說明decode將式與每個條件式逐一進行比較。如果expr等於條件式,oracle資料庫將返回相應的結果。如果找不到匹配的值,則返回預設值。如果省略預設值,則返回null。

switch( 式 )
寫法

decode (式,條件式1,數值1

[, 條件式2,數值2]

[,條件式3, 數值3...]

[, 數值4])

-----------

eg:select deptno,ename,sal,decode(deptno,10,sal*1.1,

20,sal*1.2,

sal*1.5)new_sal

from employees;

/*根據部門,,調整新的工資*/

注意

oracle12c建立使用者

本人在centos7安裝好資料庫 oracle12c 準備建立乙個使用者的時候 報錯了,如下 sql create user bpmx3 identified by bpmx3 create user bpmx3 identified by bpmx3 error at line 1 ora 650...

Oracle 12C 安裝異常

報錯 一 ins 30131 1.以管理員執行setup.exe 2.管理員要有c盤的讀寫許可權 控制面板 所有控制面板項 管理工具 計算機管理 系統工具 共享資料夾 共享 3.regedit hkey local machine system currentcontrolset services ...

oracle12c基本操作

select userenv language from dual sqlplus 使用者名稱 密碼 sqlplus as sysdba create user c fds identified by fds123 其中c fds為使用者名稱,fds123為密碼 grant create sessi...