当前位置:Gxlcms > 数据库问题 > Oracle_单行函数

Oracle_单行函数

时间:2021-07-01 10:21:17 帮助过:11人阅读

--dual是一张虚拟表,用于做测试 select sysdate from dual; select 1 + 1 from dual;  
字符函数initcap(),lower(),upper(),substr(),replace(),length()
--1.字符函数 ----首字母大写,全部小写,全部大写 select initcap(‘hello world‘),lower(‘LIASDFALASDLF ASLKDF‘), upper(‘sdfafa dsf‘) from dual;  
--2.查询所有员工的姓名,分别以首字母大写,其余字母小写的形式显示; select ename, initcap(ename), lower(ename) from emp;  
--3.字符串的截取 --substr():第一个参数表示被截取的字符串,第二个参数表示起始位置,第三个参数表示截取的长度 -----------第一个参数表示被截取的字符串 -----------第二个参数表示截取的开始位置 -----------第三个参数可以省略,表示一直截取到末尾 --查询员工的姓名,并显示员工姓名的前三位字母 select ename, substr(ename, 0, 3) from emp; --查询员工的姓名,并显示员工姓名的后三位字母 select ename, substr(ename, -3) from emp;  
--4.查询所有员工的姓名,将姓名中的‘A’字符替换为‘a’ select ename, replace(ename, ‘A‘, ‘a‘) as replace from emp;  
--5.查看字符串的长度 select ename from emp where length(ename)=6;  
数值函数ceil(),floor(),round(),trunc()
--6.数值函数  ceil()  floor()  round()  trunc()   select ceil(12.00001) from dual;   select floor(12.99999) from dual; select round(12.43) from dual; select trunc(12.88) from dual;     select round(88.44, 1) from dual; select round(88.45, 1) from dual;   select round(44.45, -1) from dual; select round(45.45, -1) from dual; select round(155.45, -2) from dual;  
日期函数add_months(),next_day(),last_day()
--7.日期函数 select sysdate from dual; ----7.1查看所有员工到今天为止入职的月份,保留到整数 select hiredate, round(months_between(sysdate, hiredate), 0) from emp;   ----7.2距离当前日期一个月后的日期 select sysdate, add_months(sysdate, 1) from dual;   ----7.3得到距离下一个指定星期最近的日期 select sysdate, next_day(sysdate, ‘星期六‘) from dual;   ----7.4last_day:表示当前月份的最后一天是记号 select sysdate, last_day(sysdate) from dual;  
    技术分享  
转换函数to_number(),to_date(),to_char()
select 1 + to_number(‘123‘) from dual; select 1 + ‘123‘ from dual; select 1 + to_char(123) from dual;  
--1.to_date将字符串转化为日期类型 select * from emp where hiredate = ‘17-12月-80‘; select * from emp where hiredate = to_date(‘1980-12-17‘,‘yyyy-MM-dd‘); select to_date(‘1840-1-1 18:00:00‘,‘yyyy-mm-dd hh24:mi:ss‘) from dual;  
--2.to_char将日期转化为字符串 select 123,to_char(123) from dual; select sysdate,to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) from dual;  

select ename,to_char(hiredate,‘yyyy‘)year from emp;  
其他函数nvl(),nvl2()
--3.1nvl:如果待判断的值为null,那么返回第二个参数,否则返回本身 --注意,nvl第二个参数的类型必须与第一个参数的类型一致 ----查询所有员工的月薪,提成,总工资 select sal,nvl(comm,0),sal+nvl(comm,0) from emp;  
--3.2nvl2(expr1,expr2,expr3) --表达式1为空的时候,返回表达式3,否则返回表达式2 select sal,comm,nvl2(comm,sal+comm,sal) total from emp;  
decode:多重判断  
--查看所有的职位信息 select distinct job from emp; select distinct job,decode(job,‘CLERK‘,‘职员‘,‘SALESMAN‘,‘销售‘,‘PRESIDENT‘,‘董事长‘,‘MANAGER‘,‘经理‘,‘ANALYST‘,‘分析师‘)job_zh  from emp;  
     

Oracle_单行函数

标签:sys   months   1.2   多重判断   floor   decode   expr   nal   rem   

人气教程排行