1. 程式人生 > >Oracle使用字元操作函式

Oracle使用字元操作函式

1.CONCAT 函式

CONCAT函式連線兩個字元字面值,列或者表示式,從而生成一個更大的字元表示式。

CONCAT函式有兩個引數。其語法是CONCAT(s1,s2),其中s1,s2表示字串字面值、字元列值

或者產生字串的表示式。下列的查詢說明了這個函式的用法:

select concat('Today is:',sysdate)  from dual;


2.LENGTH 函式

LENGTH函式返回組成字串的字元數。空格、製表符和特殊字元都被LENGTH函式計算在內。

LENGTH函式只有一個引數,其語法是LENGTH(s)。

select  *  from  countries where length(country_name)>9

3.LPAD和RPAD函式

LPAD和RPAD函式也別稱為左填充和右填充函式,它們分別返回在給定字串左邊或者右邊填充指定數量的字串後

形成的字串。用於填充的字串包括字元字面值、列值、表示式、空格(預設)、製表符和特殊字元

LPAD函式有三個引數。其語法是LPAD(s,n,p),其中s表示源字串,n表示返回字串的最終長度,p指定用於填充的字串。

當使用LPAD函式,填充字串p就會被新增到源字串s的左邊,直到長度為n為止。


注意:如果引數n小於或者等於源字串s的長度,就不會新增任何字元,此時只返回源字串s的前n個字元。


---------(RPAD的用法與LPAD相似)

4.TRIM函式

TRIM函式從字元值的開頭或者結尾刪除一些字元,從而生成一個更簡短的字元項。

TRIM函式使用的引數由一個強制組成部分和一個可選組成部分構成。

其語法是:

1).TRIM(s) 刪除輸入字串兩邊的空格

2).TRIM(trailing  trimstring from s) 從字串s的結尾刪除所有的trimstring (如果存在的話)

3).TRIM(leading  trimstring from s) 從字串s的開頭刪除所有的trimstring (如果存在的話)

4).TRIM(both trimstring from s) 從字串s的開頭和結尾刪除所有的trimstring (如果存在的話)

select trim(both  '*' from '****hidden****'),

trim(leading '*' from  '****hidden****'),

trim(trailing '*'   from '****hidden****')

from dual


5.INSTR函式

INSTR函式確定搜尋字串在給定字串內的位置。它返回數字位置,在這個位置上,搜尋字串開始第n次出現,如果搜尋字串不存在,

那麼INSTR函式就返回零。

INSTR函式使用兩個可選的引數和兩個強制引數。其語法是 INSTR(source string,search string,[search start position],[nth occurrence])。

search start position的預設值是1或者source string的開頭。nth的預設值是1或者第1次出現。

select instr('1#3#5#7#9#','#'),

instr('1#3#5#7#9#','#',5),

instr('1#3#5#7#9#','#',3,4) 

from dual


6.SUBSTR函式(Substring)

SUBSTR函式從給定源字串中給定的位置開始,提取指定長度的子字串。如果起始位置大於源字串的長度,

就會返回null。如果從給定起始位置提取的字元數大於源字串的長度,返回的部分就是從起始位置到字串結尾的子字串

語法是:SUBSTR(source string, start position,[number of characters to extract]),要提取的預設字元數為從start position到

source string結尾的字元數。


注意:負數起始位置引數說明Oracle從字串的結尾向前搜尋3個字元。

7.REPLACE 函式

REPLACE 用替換向取代源字串中出現的所有搜尋項。如果替換項與搜尋項的長度不同,那麼返回字串的長度與源字串的長度也不同。

如果沒有找到搜尋的字串,就會原封不動地返回源字串。REPLACE函式有三個引數,前兩個是強制的。

其語法是 REPLACE(source string ,search item,[replacement term])。如果省略replacement term引數,就會從source string中刪除所有出現的

search item。