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。