Oracle_单行函数

时间:2023-03-09 13:26:03
Oracle_单行函数

Oracle_单行函数

--dual是一张虚拟表,用于做测试
select sysdate from dual;

select  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,) from emp;
--查询员工的姓名,并显示员工姓名的后三位字母

select) from emp;  

--4.查询所有员工的姓名,将姓名中的‘A’字符替换为‘a’

select ename, replace(ename, 'A', 'a') as replace from emp;  

--5.查看字符串的长度

select;  

数值函数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) from dual;
select) from dual;
select) from dual;
select) from dual;

select) from dual;  

日期函数add_months(),next_day(),last_day()
--7.日期函数
select sysdate from dual;
----7.1查看所有员工到今天为止入职的月份,保留到整数
select) from emp;
----7.2距离当前日期一个月后的日期
select) from dual;
----7.3得到距离下一个指定星期最近的日期
select sysdate, next_day(sysdate, '星期六') from dual;
----7.4last_day:表示当前月份的最后一天是记号

select sysdate, last_day(sysdate) from dual;  

Oracle_单行函数
转换函数to_number(),to_date(),to_char()
select + to_number('123') from dual;
select + '123' from dual;

select ) 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) 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),) 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;