關於字元函式的一些應用總結
字元函式接受字元引數,一般來說可以用於任意表示式,字元函式以某種方式處理,給使用者返回結果。下面總結了一些常用的字元函式:
SQL> select * from v$version where rownum<2;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
1.ASCII() 和 CHR()
ASCII(x)用於獲得字元x的ascii碼,CHR()用於獲得ascii碼為x的字元:==>為互逆過程
SQL> select ascii('a'),ascii('A'),ascii('z'),ascii('Z'),ascii(0) from dual;
ASCII('A') ASCII('A') ASCII('Z') ASCII('Z') ASCII(0)
---------- ---------- ---------- ---------- ----------
97 65 122 90 48
SQL> select CHR(97),CHR(65),CHR(122),CHR(90),CHR(48) from dual;
CH CH CH CH CH
-- -- -- -- --
a A z Z 0
2.CONCAT()
CONCAT(x,y)函式用於將y新增到x之後,該函式返回得到的是字串:
SQL> select concat(id,name) from tt where rownum=1 ORDER BY ID;
CONCAT(ID,NAME)
--------------------------------------------------------------------------------
6hong
這個函式和連字元||功能相同:
SQL> select id||name from tt where rownum=1 order by id;
ID||NAME
--------------------------------------------------------------------------------
6hong
3.INITCAP()
用於將x中的每個單詞的字母首字母轉換成大寫:
SQL> select initcap(id)||' '||initcap(name) from tt where rownum=1 order by id;
INITCAP(ID)||''||INITCAP(NAME)
--------------------------------------------------------------------------------
instr(x,fing_string,[,start][,occurrence])用於在x中查詢find_string,並返回find_string所在的位置,其中start是可選引數,表明x是從哪個位置開始查詢,還可以用可選引數occurrence說明返回find_string第幾次出現的位置:
<1>不帶引數
SQL> select name,instr(name,'I') from diy;
NAME INSTR(NAME,'I')
---------------------------------------- ---------------
AIAIAIAIAIAIAIAI 2
<2>從開頭第二次出現字母I開始:
SQL> select name,instr(name,'I',1,2) from diy;
NAME INSTR(NAME,'I',1,2)
---------------------------------------- -------------------
AIAIAIAIAIAIAIAI 4
5.LENGTH()
用於獲取length(x)函式中字元x的個數:
SQL> select length(name) from diy;
LENGTH(NAME)
------------
16
6.LOWER()和UPPER()
lower(x)函式用於將x中的字母轉換成小寫,upper(x)函式將x中的字母轉換成大寫:
SQL> select upper(name),lower(name) from diy;
UPPER(NAME) LOWER(NAME)
---------------------------------------- ---------------------------------------
-
AIAIAIAIAIAIAIAI aiaiaiaiaiaiaiai
7.LPAD()和RPAD()
lpad(x,width[,pad_string])函式用於在x的左邊補齊空格,使x的總長度達到width個字元。如果在pad_string引數中指定了一個字串,那麼就使用這個字元重複的填充x左邊的空位,以補齊x的長度,補齊後字串作為結果返回,同理,rpad(x,width[,pad_string])函式用於在x的右邊補齊字串:
SQL> select rpad(name,10,'.'),lpad(name,10,'.') from wang where rownum=1;
RPAD(NAME,10,'.')
LPAD(NAME,10,'.')
--------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-
WANG......
......WANG
8.LTRIM()和RTRIM()和TRIM()
ltrim(x[,trim_string])函式用於從x的左邊擷取一些字元,該函式還可以用可選的引數trim_string來指定要截去的字元,如果沒有指定trim_string引數,預設情況下截去的是空格。同理,rtrim(x[,trim_string])函式用於從x的右邊擷取一些字元,trim(x[,trim_string])函式用於從x的左右邊擷取一些字元。
SQL> select rtrim('diy os! ') from dual;
RTRIM('DIYOS!')
----------------
diy os!
SQL> select rtrim('diy os!00000000','0') from dual;
RTRIM('DIYOS!000
----------------
diy os!
SQL> select trim('0'from'00000000diy os00000000') from dual;
TRIM('0'FROM'0
--------------
diy os
9.NVL()
nvl(x,value)用於將空值轉換成一個已知的值,如果x為空,返回value,否則返回x:
SQL> select * from wang;
NAME ID
------------ ----------
2
WANG 1
SQL> select id,nvl(name,'the name is null') from wang;
ID NVL(NAME,'THENAMEISNULL')
---------- --------------------------------
2 the name is null
1 WANG
10.NVL2()
nvl2(x,value1,value2)中,如果x為非空,返回value1,否則返回value2:
SQL> select * from wang;
NAME ID
------------ ----------
2
WANG 1
SQL> select id,nvl2(name,'the name is not null','the name is null') from wang;
ID NVL2(NAME,'THENAMEISNOTNULL','THENAMEISN
---------- ----------------------------------------
2 the name is null
1 the name is not null
11.REPLACE()
repSQL> select replace(name,'WANG','diy') from wang where id=1; ==>注意這裡的search_string,大小寫一定要和表裡的一致
lace(x,search_string,replace_string)用於在x中查詢search_string,並將其替換成replace_string:
REPLACE(NAME,'WANG','DIY')
------------------------------------
diy
12.SOUNDEX()
soundex(x)用於獲得包含x發音的一個字串,該函式用於對英文拼寫不同但發音相識的單詞進行比較。
SQL> select name from wang where soundex(name) = soundex(
2 'whyte');
NAME
------------
white
是不是很有意思!
13.SUBSTR()
SUBSTR(x,start[,length])用於從x中取得的從start位置開始的一個字串,還可以使用可選引數length指定字串的長度:
<1>用於表中的列:
SQL> select * from diy;
NAME
----------------------------------------
AIAIAIAIAIAIAIAI
SQL> select substr(name,15) from diy;
SUBSTR(NAME,15)
------------------------------------------------
AI
SQL> select substr(name,15,2) from diy;
SUBSTR(NAME,15,2
----------------
AI
<2>用於任意表示式:
SQL> select substr('wangdiywaNBdiy',10,2) from diy;
SUBS
----
NB
<3>也可用於函式的任意組合:
SQL> select lower(substr('wangdiywaNBdiy',10,2)) from diy;
LOWE
----
nb
SQL> select * from v$version where rownum<2;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
1.ASCII() 和 CHR()
ASCII(x)用於獲得字元x的ascii碼,CHR()用於獲得ascii碼為x的字元:==>為互逆過程
SQL> select ascii('a'),ascii('A'),ascii('z'),ascii('Z'),ascii(0) from dual;
ASCII('A') ASCII('A') ASCII('Z') ASCII('Z') ASCII(0)
---------- ---------- ---------- ---------- ----------
97 65 122 90 48
SQL> select CHR(97),CHR(65),CHR(122),CHR(90),CHR(48) from dual;
CH CH CH CH CH
-- -- -- -- --
a A z Z 0
2.CONCAT()
CONCAT(x,y)函式用於將y新增到x之後,該函式返回得到的是字串:
SQL> select concat(id,name) from tt where rownum=1 ORDER BY ID;
CONCAT(ID,NAME)
--------------------------------------------------------------------------------
6hong
這個函式和連字元||功能相同:
SQL> select id||name from tt where rownum=1 order by id;
ID||NAME
--------------------------------------------------------------------------------
6hong
3.INITCAP()
用於將x中的每個單詞的字母首字母轉換成大寫:
SQL> select initcap(id)||' '||initcap(name) from tt where rownum=1 order by id;
INITCAP(ID)||''||INITCAP(NAME)
--------------------------------------------------------------------------------
6 Hong
4.INSTR()instr(x,fing_string,[,start][,occurrence])用於在x中查詢find_string,並返回find_string所在的位置,其中start是可選引數,表明x是從哪個位置開始查詢,還可以用可選引數occurrence說明返回find_string第幾次出現的位置:
<1>不帶引數
SQL> select name,instr(name,'I') from diy;
NAME INSTR(NAME,'I')
---------------------------------------- ---------------
AIAIAIAIAIAIAIAI 2
<2>從開頭第二次出現字母I開始:
SQL> select name,instr(name,'I',1,2) from diy;
NAME INSTR(NAME,'I',1,2)
---------------------------------------- -------------------
AIAIAIAIAIAIAIAI 4
5.LENGTH()
用於獲取length(x)函式中字元x的個數:
SQL> select length(name) from diy;
LENGTH(NAME)
------------
16
6.LOWER()和UPPER()
lower(x)函式用於將x中的字母轉換成小寫,upper(x)函式將x中的字母轉換成大寫:
SQL> select upper(name),lower(name) from diy;
UPPER(NAME) LOWER(NAME)
---------------------------------------- ---------------------------------------
-
AIAIAIAIAIAIAIAI aiaiaiaiaiaiaiai
lpad(x,width[,pad_string])函式用於在x的左邊補齊空格,使x的總長度達到width個字元。如果在pad_string引數中指定了一個字串,那麼就使用這個字元重複的填充x左邊的空位,以補齊x的長度,補齊後字串作為結果返回,同理,rpad(x,width[,pad_string])函式用於在x的右邊補齊字串:
SQL> select rpad(name,10,'.'),lpad(name,10,'.') from wang where rownum=1;
RPAD(NAME,10,'.')
LPAD(NAME,10,'.')
--------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-
WANG......
......WANG
8.LTRIM()和RTRIM()和TRIM()
ltrim(x[,trim_string])函式用於從x的左邊擷取一些字元,該函式還可以用可選的引數trim_string來指定要截去的字元,如果沒有指定trim_string引數,預設情況下截去的是空格。同理,rtrim(x[,trim_string])函式用於從x的右邊擷取一些字元,trim(x[,trim_string])函式用於從x的左右邊擷取一些字元。
SQL> select rtrim('diy os! ') from dual;
RTRIM('DIYOS!')
----------------
diy os!
SQL> select rtrim('diy os!00000000','0') from dual;
RTRIM('DIYOS!000
----------------
diy os!
SQL> select trim('0'from'00000000diy os00000000') from dual;
TRIM('0'FROM'0
--------------
diy os
9.NVL()
nvl(x,value)用於將空值轉換成一個已知的值,如果x為空,返回value,否則返回x:
SQL> select * from wang;
NAME ID
------------ ----------
2
WANG 1
SQL> select id,nvl(name,'the name is null') from wang;
ID NVL(NAME,'THENAMEISNULL')
---------- --------------------------------
2 the name is null
1 WANG
10.NVL2()
nvl2(x,value1,value2)中,如果x為非空,返回value1,否則返回value2:
SQL> select * from wang;
NAME ID
------------ ----------
2
WANG 1
SQL> select id,nvl2(name,'the name is not null','the name is null') from wang;
ID NVL2(NAME,'THENAMEISNOTNULL','THENAMEISN
---------- ----------------------------------------
2 the name is null
1 the name is not null
repSQL> select replace(name,'WANG','diy') from wang where id=1; ==>注意這裡的search_string,大小寫一定要和表裡的一致
lace(x,search_string,replace_string)用於在x中查詢search_string,並將其替換成replace_string:
REPLACE(NAME,'WANG','DIY')
------------------------------------
diy
soundex(x)用於獲得包含x發音的一個字串,該函式用於對英文拼寫不同但發音相識的單詞進行比較。
SQL> select name from wang where soundex(name) = soundex(
2 'whyte');
NAME
------------
white
是不是很有意思!
13.SUBSTR()
SUBSTR(x,start[,length])用於從x中取得的從start位置開始的一個字串,還可以使用可選引數length指定字串的長度:
<1>用於表中的列:
SQL> select * from diy;
NAME
----------------------------------------
AIAIAIAIAIAIAIAI
SQL> select substr(name,15) from diy;
SUBSTR(NAME,15)
------------------------------------------------
AI
SQL> select substr(name,15,2) from diy;
SUBSTR(NAME,15,2
----------------
AI
SQL> select substr('wangdiywaNBdiy',10,2) from diy;
SUBS
----
NB
SQL> select lower(substr('wangdiywaNBdiy',10,2)) from diy;
LOWE
----
nb
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29876893/viewspace-1496331/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於linux下system()函式的總結Linux函式
- 字串函式的應用及做題總結字串函式
- 史上最全關於sorted函式的10條總結函式
- 字元陣列的幾個應用函式字元陣列函式
- 總結一些常用的陣列函式陣列函式
- 關於Mysql使用的一些總結MySql
- MySql關於鎖的一些總結MySql
- 關於繼承的一些小總結繼承
- 關於EM配置的一些總結
- 關於BUFFER POOL的一些總結
- 關於Oracle塊的一些總結Oracle
- 關於 Math.random 的一些函式random函式
- 關於虛擬函式的一些理解函式
- ORACLE 實用函式總結Oracle函式
- 關於字串的功能函式小結字串函式
- 關於Code Review的一些思考總結View
- mysql 字元函式小結MySql字元函式
- mysql練習 —— 關於一些函式的使用MySql函式
- 總結關於CPU的一些基本知識
- 關於sqlplus用法的一些總結SQL
- 關於查詢轉換的一些總結
- 《基於MVC的javascript web富應用開發》中的一些函式MVCJavaScriptWeb函式
- 關於Java建構函式(Constructor)的常見問題總結Java函式Struct
- python中關於時間和日期函式的常用計算總結Python函式
- 關於 變址影像(indexed image) 的一些總結Index
- 關於使用者體驗的一些總結
- 關於查詢最佳化的一些總結
- 關於DDD和COLA的一些總結和思考
- 超實用PHP函式總結整理PHP函式
- 神經網路的啟用函式總結神經網路函式
- tensorflow相關函式學習總結函式
- MySQL 字串擷取相關函式總結MySql字串函式
- 關於學習 Linux 系統結構的一些總結Linux
- 關於分散式鎖在程式設計中的一些應用場景分散式程式設計
- 字元函式字元函式
- php函式總結PHP函式
- Oracle 函式總結Oracle函式
- 關於程式和執行緒 自我的一些總結執行緒