【轉載】oracle中decode函式用法
1、DECODE的語法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else)。表示假設value 等於if1時,DECODE函式的結果返回then1,...,假設不等於不論什麼一個if值。則返回else
2、該函式的含義例如以下:
IF 條件=值1 THEN
RETURN(翻譯值1)
ELSIF 條件=值2 THEN
RETURN(翻譯值2)
......
ELSIF 條件=值n THEN
RETURN(翻譯值n)
ELSE
RETURN(預設值)
END IF
3、比較大小
select decode(sign(變數1-變數2),-1,變數1,變數2) from dual; --取較小值
sign()函式依據某個值是0、正數還是負數。分別返回0、1、-1
比如:
變數1=10,變數2=20
則sign(變數1-變數2)返回-1。decode解碼結果為“變數1”。達到了取較小值的目的。
4、有學生成績表student,如今要用decode函式實現下面幾個功能:成績>85,顯示優秀;>70顯示良好;>60及格;否則是不及格。
如果student的編號為id,成績為score,那麼:
select id, decode(sign(score-85),1,'優秀',0,'優秀',-1,
decode(sign(score-70),1,'良好',0,'良好',-1,
decode(sign(score-60),1,'及格',0,'及格',-1,'不及格')))
from student。
5、Decode函式的語法結構例如以下:
decode (expression, search_1, result_1)
decode (expression, search_1, result_1, search_2, result_2)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)
decode (expression, search_1, result_1, default)
decode (expression, search_1, result_1, search_2, result_2, default)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
decode函式比較表示式和搜尋字,假設匹配,返回結果;假設不匹配,返回default值;假設沒有定義default值,則返回空值。