標籤:blog 使用 ar strong 資料 div sp on c
1、wmsys.wm_concat函數
將列轉為行。例子:
--表裡的資料如下SQL> select * from idtable; ID NAME---------- ------------------------------ 10 ab 10 bc 10 cd 20 hi 20 ij 20 mn--函數的執行效果SQL>select id,wmsys.wm_concat(name) name from idtable group by id; ID NAME---------- -------------------------------------------------------------------------------- 10 ab,bc,cd 20 hi,ij,mn
即按id分組,把id相同的name列組合起來。
2、replace函數
replace(String str, String targetStr [, String aimStr]),將str字串中的targetStr字元,替換為aimStr字元。
如果不給出aimStr參數,則函數就會將str字串中的targetStr字串刪除。如:
select replace(‘hello‘, ‘h‘, ‘y‘) from dual;--輸出:yelloselect replace(‘hello‘, ‘h‘) from dual;--輸出:ello
3、“||”字串串連符
在Oracle中,如果想要將字串串連起來,那麼可以使用“||”符號。如:
select dummy from dual;--輸出:Xselect dummy || ‘Z‘ from dual;--輸出:XZ
4、decode函數
decode通常用來做判斷,其參數格式為:decode(條件,值1,翻譯值1,值2,翻譯值2,預設值),它等於我們編程中這樣的語句:
IF 條件=值1 THEN RETURN(翻譯值1)ELSIF 條件=值2 THEN RETURN(翻譯值2) ......ELSIF 條件=值n THEN RETURN(翻譯值n)ELSE RETURN(預設值)END IF
下面舉幾個例子:
select decode(‘1‘, ‘1‘, ‘one‘, ‘2‘, ‘two‘, ‘other‘) from dual;--1.輸出:oneselect decode(‘2‘, ‘1‘, ‘one‘, ‘2‘, ‘two‘, ‘other‘) from dual;--2.輸出:twoselect decode(‘1‘, ‘1‘, ‘one‘, ‘1‘, ‘two‘, ‘other‘) from dual;--3.輸出:one (遇到第一個值匹配之後,就不再進行匹配了,驗證了是IF..ELSE IF..ELSE的文法)
5、sign(n)函數
若n=0,則返回0。否則,n>0,則返回1。n<0,則返回-1。
select sign(12) from dual; --輸出:1
6、ceil(n)
返回結果是大於等於輸入參數的最小整數
select ceil(10.5) from dual;--輸出:11
7、floor(n)
返回結果是小於等於輸入參數的最大整數
select floor(9.3) from dual;--輸出:9
8、round(n)
四捨五入
SELECT round(100.51515),round(99.2343) from dual;--輸出:101 99
9、TRUNC(n, integer)
截取數值的函數。integer為正整數,表示截取幾位小數。integer為負整數,則截取小數點左幾位。如果integer為小數,則函數會忽略小數部分。
比如當integer為3.25時,函數將會按3去截取。
select trunc(1222.23456,2), trunc(1222.23456, -1), trunc(1222.23456, 2.56) from dual;--1222.23 1220 1222.23
Oracle函數集錦