Oracle DECODE函數的用法詳解

DECODE 中的if-then-else邏輯

在邏輯編程中,常常用到If – Then –Else 進行邏輯判斷。在DECODE的語法中,實際上就是這樣的邏輯處理過程。它的語法以下:
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
Value 表明某個表的任何類型的任意列或一個經過計算所得的任何結果。當每一個value值被測試,若是value的值爲if1,Decode 函數的結果是then1;若是value等於if2,Decode函數結果是then2;等等。事實上,能夠給出多個if/then 配對。若是value結果不等於給出的任何配對時,Decode 結果就返回else 。
須要注意的是,這裏的if、then及else 均可以是函數或計算表達式。

DECODE 的簡單例子

Oracle系統中就有許多 數據字典是使用decode 思想設計的,好比記錄會話信息的V$SESSION數據字典視圖就是這樣。咱們從《Oracle8i/9i Reference》資料中瞭解到,當用戶登陸成功後在V$SESSION中就有該用戶的相應記錄,但用戶所進行的命令操做在該視圖中只記錄命令的代碼(0—沒有任何操做,2—Insert…),而不是具體的命令關鍵字。所以,咱們須要瞭解當前各個用戶的名字及他們所進行的操做時,要用下面命令才能獲得詳細的結果:
select sid,serial#,username,
DECODE(command,
0,’None’,
2,’Insert’,
3,’Select’,
6,’Update’,
7,’Delete’,
8,’Drop’,
‘Other’) command
from v$session where username is not null;
例子2:
DECODE(VALUE,'0','1','2')
若value爲0,則爲1,不然爲2
相關文章
相關標籤/搜索