Oracle单列函数

Posted <烟花易冷>

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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单列函数的主要内容,如果未能解决你的问题,请参考以下文章

关于Oracle中实现单列拆分成多列的技术应用

Oracle的去重函数 distinct

具有多列查询单列的 Oracle 索引

oracle切割字符串后以单列多行展示

Oracle 单列去重 显示单行所有列数据

oracle sql单行函数 常用函数实例