ORACLE的sign函式和DECODE函式
阿新 • • 發佈:2019-02-09
函式介紹
DECODE函式是ORACLE PL/SQL的功能強大的函式之一,目前還只有ORACLE公司的SQL提供了此函式,其它資料庫廠商的SQL實現還沒有此功能。DECODE有什麼用途呢?先構造一個例子,假設我們想給智星職員加工資,其標準是:工資在8000元以下的加20%;工資在8000元或以上的加15%,通常的做法是,先選出記錄中的工資欄位值? select salary into var-salary from employee,然後對變數var-salary用if-then-else或choose case之類的流控制語句進行判斷。如果用DECODE函式,那麼我們就可以把這些流控制語句省略,通過SQL語句就可以直接完成。如下:select decode(sign(salary - 8000),>=0,salary*1.15,<0,salary*1.2,salary) from employee 是不是很簡潔? DECODE的語法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等於if1時,DECODE函式的結果返回then1,...,如果不等於任何一個if值,則返回else。初看一下,DECODE 只能做等於測試,但剛才也看到了,我們通過一些函式或計算替代value,是可以使DECODE函式具備大於、小於或等於功能。