Oracle函數
--字符函數
--1.ASCII 返回與指定的字符對應的十進制數;
select ascii(‘A‘) A,ascii(‘a‘) a,ascii(‘0‘) zero,ascii(‘ ‘) space from dual;
--2.CHR 給出整數,返回對應的字符;
select chr(54740) zhao,chr(65) chr65 from dual;
--3.CONCAT 連接兩個字符串;
select concat(‘010-‘,‘88888888‘)||‘轉23‘ 高乾競電話 from dual;
--4.INITCAP 返回字符串並將字符串的第一個字母變為大寫;
select initcap(‘smith‘) upp from dual;
--5.INSTR(C1,C2,I,J) 在一個字符串中搜索指定的字符,返回發現指定的字符的位置;
select instr(‘oracle traning‘,‘ra‘,-1,2) instring from dual;
--6.LOWER 返回字符串,並將所有的字符小寫
select lower(‘AaBbCcDd‘)AaBbCcDd from dual;
--7.UPPER 返回字符串,並將所有的字符大寫
select upper(‘AaBbCcDd‘) upper from dual;
--8.RPAD和LPAD(粘貼字符)
--RPAD 在列的右邊粘貼字符
--LPAD 在列的左邊粘貼字符
select lpad(rpad(‘gao‘,10,‘*‘),17,‘-‘)from dual;
--9.LTRIM和RTRIM
--LTRIM 刪除左邊出現的字符串
--RTRIM 刪除右邊出現的字符串
select ltrim(rtrim(‘ gao qian jing ‘,‘ ‘),‘ ‘) from dual;
--10.SUBSTR(string,start,count)
--取子字符串,從start開始,取count個
select substr(‘13088888888‘,3,8) from dual;
--11.REPLACE(‘string‘,‘s1‘,‘s2‘)
--string 希望被替換的字符或變量
--s1 被替換的字符串
--s2 要替換的字符串
select replace(‘HE LOVE YOU‘,‘HE‘,‘I‘) from dual;
--12.ABS
--返回指定值的絕對值
select abs(100),abs(-100) from dual;
--13.ACOS 給出反余弦的值
select acos(-1) from dual;
--14.ASIN 給出反正弦的值
select asin(0.5) from dual;
--15.ATAN 返回一個數字的反正切值
select atan(1) from dual;
--16.CEIL 返回大於或等於給出數字的最小整數
select ceil(3.1415927) from dual;
--17.COS 返回一個給定數字的余弦
select cos(-3.1415927) from dual;
--18.COSH 返回一個數字反余弦值
select cosh(20) from dual;
--19.EXP 返回一個數字e的n次方根
select exp(2),exp(1) from dual;
--20.FLOOR 對給定的數字取整數
select floor(2345.67) from dual;
--21.LN 返回一個數字的對數值
select ln(1),ln(2),ln(2.7182818) from dual;
--22.LOG(n1,n2) 返回一個以n1為底n2的對數
select log(2,1),log(2,4) from dual;
--23.MOD(n1,n2) 返回一個n1除以n2的余數
select mod(10,3),mod(3,3),mod(2,3) from dual;
--24.POWER 返回n1的n2次方根
select power(2,10),power(3,3) from dual;
--25.ROUND和TRUNC 按照指定的精度進行舍入
select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;
--26.SIGN 取數字n的符號,大於0返回1,小於0返回-1,等於0返回0
select sign(123),sign(-100),sign(0) from dual;
--27.trim
select trim(‘a‘ from ‘ahappyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa‘) from dual;
--lengthb
select lengthb(‘好人‘) from dual;
--length
select length(‘好人‘) from dual;
--日期函數
--月
select floor("MONTHS_BETWEEN"(SYSDATE, "TO_DATE"(‘1997-05-18‘, ‘yyyy-MM-dd‘))) from dual;
--天
SELECT floor(SYSDATE-"TO_DATE"(‘1997-05-18‘, ‘yyyy-MM-dd‘)) from dual;
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) from dual;
--數字函數
--四舍五入 round
SELECT round(12.45,1)from dual;
--通用函數
--nvl和nvl2濾空函數
select sal*12 工資,comm 獎金,sal*12+nvl(comm,0) from emp;
select sal, sal+NVL2(COMm,comm*2,0) from emp;
--decode
select ename,decode(deptno,10,‘開發部‘,20,‘測試部‘,30,‘財務部‘,‘保潔部‘) from EMP
Oracle函數