14.1单行函数

-- 单行函数包含:
-- 1.字符串函数
select ename,length(ename),substring(ename,2,3) from emp;
-- substring字符串截取,2:从字符串下表2开始; 3:截取长度为3;下表从1开始

-- 2.数值函数
-- abs绝对值  ceil向上取整  floor向下取整  round四舍五入
select abs(-5),ceil(5.3),floor(5.9),round(3.14) from emp;
select abs(-5),ceil(5.3),floor(5.9),round(3.14) from dual; -- dual实际就是一个伪表
select abs(-5) 绝对值,ceil(5.3)向上取整,floor(5.9)向下取整,round(3.14)四舍五入; -- 如果没有where条件的话,from dual 可以省略不写 
select ceil(sal) from emp;
select 10/3,10%3,mod(10,3);

-- 3.日期与时间函数
select * from emp;
select curdate(),curtime();-- curdate()年月日   curtime()时分秒
select now(),sysdate(),sleep(3),now(),sysdate() from dual;  -- now(),sysdate() 年月日时分秒
-- now()可以表示年月日时分秒,但是插入数据的时候还是要参照表的结构的,参数类型有可能是date或者datetime之类的。

-- 4.流程函数
-- if相关:
select empno,ename,sal,if(sal>=2500,'高薪资','低薪资') as 薪资等级 from emp; -- if-else双分支结构
select empno,ename,sal,comm,sal+ifnull(comm,0) from emp; -- 如果comm是null,那么取值为0,单分支结构
select nullif(1,1),nullif(3,2) from dual;-- 如果value1=value2,返回null值,否则返回value1
-- case相关:
-- case等值判断:
select empno,ename,job,
case job
 when 'CLERK' then '店员'
 when 'SALESMAN' then '销售'
 when 'MANAGER' then '经理'
 else '其他'
 end as '岗位',
sal from emp;

-- case区间判断:
select empno,ename,sal,
case 
	when sal<=1000 then 'A'
	when sal<=2000 then 'B'
	when sal<=3000 then 'C'
	else 'D'
	end as '薪资等级',deptno from emp;


-- 5.JSON函数
 没学json,暂时不管
-- 6.其他函数
select database(),user(),version() from dual;

上一篇:Linux - K8S - 集群清空,升级以及加载网络从fannel到calico,从iptables到ipvs


下一篇:PG SQL截取字符串到指定字符位置