1、decode函式的用法
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),1,salary*1.15,-1,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函式具備大於、小於或等於功能。
2、sign
sign()函式根據某個值是0、正數還是負數,分別返回0、1、-1 ,例如: 引用 a=10,b=20 則sign(a-b)返回-1。
3、wmsys.wm_concat()
多行合併成一行
4、oracle中的nvl和nvl2及nullif再及decode函式:
nvl判斷是否為空:nvl(exp1,exp2) 如果exp1為空 則返回exp2 否則 返回 exp1;
nvl2(exp1,exp2,exp3) 如果exp1為空 則返回 exp2,否則返回exp3;
nullif(exp1,exp2) 如果exp1=exp2返回null 否則返回exp1 ;
decode(exp1,exp2,exp3,exp4,exp5); 如果exp1=exp2返回exp3 如果等於exp4返回exp5
Oracle函式總結
instr 源字串,目標字串,起始位置,匹配序號 在oracle plsql中,instr函式返回要擷取的字串在源字串中的位置。只檢索一次,就是說從字元的開始 到字元的結尾就結束。語法如下 引數分析 string1 源字串,要在此字串中查詢。string2 要在string1中查詢的字串.start...
Oracle函式總結
clob字段值替換 replace x,y,z 返回值為將串x中的y串用z串替換後的結果字串。若省略z引數,則將串x中為y串的地方刪除 update ypgcxx.t article info st set st.f content replace st.f content,portal ypgcx...
oracle函式總結
select initcap www.baidu.com from dual initcap a 單詞首字母大寫函式 select concat hello 你好 from dual select hello 你好 世界 from dual select substr hello你好 5,3 fro...