oracle裡的replace和decode函式

2021-06-02 01:34:21 字數 1063 閱讀 7082

replace函式  

replace(字串,'a','b');

decode函式是oracle pl/sql的功能強大的函式之一,目前還只有oracle公司的sql提供了此函式,其它資料庫廠商的sql實現還沒有此功能。decode有什麼用途呢? 先構造乙個例子,假設我們想給智星職員加工資,其標準是:工資在8000元以下的加20%;工資在8000元或以上的加15%,通常的做法是,先選出記錄中的工資字段值 --->select salary into var-salary from employee,然後對變數var-salary用if-then-else或 case when then else end之類的流控制語句進行判斷。 如果用decode函式,那麼我們就可以把這些流控制語句省略,通過sql語句就可以直接完成。如下:

select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary*1.15) from employee 是不是很簡潔? decode的語法:decode(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等於if1時,decode函式的結果返回then1,...,如果不等於任何乙個if值,則返回else。初看一下,decode 只能做等於測試,但剛才也看到了,我們通過一些函式或計算替代value,是可以使decode函式具備大於、小於或等於功能。

在邏輯程式設計中,經常用到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 都可以是函式或計算表示式。

Oracle中replace函式的使用

例 select filefullname from sys frmattachmentdb 查詢的結果為 e gengbaofile tygw 歷城區專案立項審批流程 1079 3186.通用流程專案資料.jpg 需求 要將結果中的 歷城區 修改為 北京區 操作 使用的函式為replace 含義為...

Oracle中replace函式的使用

1 替換特定字串 例 select filefullname from sys frmattachmentdb 查詢的結果為 e gengbaofile tygw 歷城區專案立項審批流程 1079 3186.通用流程專案資料.jpg 需求 要將結果中的 歷城區 修改為 北京區 操作 使用的函式為re...

oracle中replace的使用及注意點

在oracle資料庫中如果需要把儲存的字串型別中的某一內容更改為其他的時候,可以使用replace函式,使用replace函式時需要注意的是,replace會將其中所有滿足條件的都替換掉,所以替換時,選擇要被替換的字元時需要盡可能的精確,否則容易替換掉其他不需要替換的內容。另外在pl sql中,使用...