一、數字函數
--1.返回x的絕對值abs(x)
select abs(-2) from dual;
--2.返回大於等於x的最小整數值ceil(x)
--3.返回小於等於x的最小整數值floor(x)
--4.返回x的y次冪power(x,y)
--5.返回x除以y的余數mod(x,y)
--6.返回x四舍五入后的值round(x[,y]),y為保留的小數位,不寫的話默認保存整數
select round(3.36,1) from dual;
--7.返回x的平方根sqrt(x)
--8.trunc(x[,y]):返回x按精度y截取后的值,y可寫可不寫。
--y為正,表示保留的小數位數;y為負,小數點左邊y位變成0;y為0或不寫取整。
select trunc(88345.937233, -5) from dual;
二、字符函數
--1.將數字轉換成字符chr(x)
--2.將字符轉換成數字ascii(x)
--3.連接字符串concat(x,y)。oracle中的concat函數只能指定兩個字符串的連接,mysql中無限制
select concat(concat('%','aaa'),'%') from dual;
--4.刪除左邊空格ltrim(x)
--5.刪除右邊空格rtrim(x)
--6.刪除兩邊空格trim(x)
--7.轉換成大寫upper(x)
--8.轉換成小寫lower(x)
--9.替換replace(str,search_str[,replace_str])
--將str字符串中的search_str子字符串替換成replace_str,replace_str可寫可不寫
select replace('abcdefghijk','def','kkkk') from dual; --abckkkkghijk
--10.替換translate,和replace相同,但比replace強大。多個同樣的值只有寫一次
select translate('abcdefghidk','def','#@') from dual; --abc#@ghi#k
--(d將被#替代,e將被@替代,f對應的值是空值,將被移走)
--如果替換的字符長度大於被替換的字符,多余部分被忽略
--11.rpad(str1,x[,str2]):填充/截取到x個長度,不足的話右邊用指定字符填充
select rpad('abcde',10,'wqe') from dual; --abcdewqewq
--12.lpad(str1,x[,str2])填充/截取到x個長度,不足的話左邊用指定字符填充
select lpad('abcde',10,'wqe') from dual; --wqewqabcde
--13.substr(str,x[,y]):截取從x的位置開始長度為y的子字符串
select substr('abcdefgh',3,6) from dual;
--14.求字符串的長度length(str)
三、轉換函數
--decode(),將查詢結果翻譯成其他值(即以其他形式表現出來)
--decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)
select decode(4-2,1,'a',2,'b') from dual;
四、空值函數
--1.nvl(x1,x2)
--x1為null,返回x2; 不為null,返回x1。注意兩者的類型要一致
select nvl(0,11) from dual;
--2.nvl2(x1,x2,x3)
--x1不為null,返回x2; 為null,返回x3。x2和x3類型不同的話,x3會轉換為x2的類型
select nvl2(null,33,22) from dual;
--3.nullif(x1,x2)
--x1和x2相等返回null,不等則返回x1
select nullif(45,45) from dual;