[亲测]Oracle查询--单行函数--PL/SQL,分析函数,集合运算(三)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43652509/article/details/86303911

ORACLE查询(单行函数–PL/SQL,分析函数,集合运算)

一、单行函数–PL/SQL

(一)字符函数

1.字符串拼接 concat 或 ||
--方式一
select concat('Hello','World') from dual;
--方式二
select 'Hello'||'world' from dual;

结果:
在这里插入图片描述

2.将首字母大写,其他全部小写 initcap
select initcap('hElLOwoRLD') from dual;

结果:
在这里插入图片描述

3.找出字符的位置 instr(从1开始计数)
select instr('Helloworld','o') from dual; 

结果:
在这里插入图片描述

4.计算字符长度 length
select length('HelloWorld') from dual;

结果:
在这里插入图片描述

5.替换 replace
select replace('HelloWorld','rld','od') from dual;

结果:
在这里插入图片描述

6.截取字符串 substr(第一个参数:要截取的字符串,第二个参数:从几开始,第三个参数:截取几个)
select substr('HelloWorld',3,3) from dual;

结果:
在这里插入图片描述

7.去除首尾空格 trim
select trim('    a   ') from dual;

结果:
在这里插入图片描述

8.全转小写 lower
select lower('HeLloWorLD') from dual;

结果:
在这里插入图片描述

9.全转大写 upper

select upper('HeLloWorLD') from dual;

结果:
在这里插入图片描述

(二)数值函数

1.求绝对值 abs
select abs(-18) from dual;

结果:
在这里插入图片描述

2.进一法 ( 有小数就进一 ) ceil
select ceil(10.1) from dual;
select ceil(10.9) from dual;

结果:
在这里插入图片描述

3.去尾法 ( 有小数就去掉 ) floor
select floor(10.1) from dual;
select floor(10.9) from dual;

结果:
在这里插入图片描述

4.取模( 余数 ) mod
select mod(17 ,3) from dual;

结果:
在这里插入图片描述

5.幂次方 power
select power(3,9) from dual;

结果:
在这里插入图片描述

6.开平方 sqrt
select sqrt(25) from dual;

结果:
在这里插入图片描述

7.四舍五入 第二个参数保留几位小数 round

第一个参数:要截取数字;第二个参数:截取个数

select round(9.4901) from dual;
select round(9.5322,2) from dual;

结果:
在这里插入图片描述

8.数值截断 trunc

第一个参数:要截取数字;第二个参数:截取个数

select trunc(9.3232,3) from dual;

结果:
在这里插入图片描述

(三)日期函数

1.获取当前系统时间 sysdate
select sysdate from dual;

结果:
在这里插入图片描述

2.指定时间的天数 + - sysdate+* / sysdate-*
当前系统时间加十天
select sysdate+10 from dual;

结果:
在这里插入图片描述

当前系统时间减十天
select sysdate-10 from dual;

结果:
在这里插入图片描述

3.构造时间 to_date
select to_date('20190110102323','yyyymmdd hh24miss') from dual;

结果:
在这里插入图片描述

4.指定时间加月 add_months
select add_months(sysdate,3) from dual; 

结果:
在这里插入图片描述

5,指定时间月份的最后一天 last_day
select last_day(sysdate) from dual;

结果:
在这里插入图片描述

6.计算月差 months_between
select months_between(sysdate,to_date('20180101','yyyymmdd')) from dual;

结果:
在这里插入图片描述

7.指定时间的下个星期 * next_day
select next_day(sysdate ,'星期五') from dual;

结果:
在这里插入图片描述

8.对日期四舍五入 round (day , month , year )
select round(to_date('20190107','yyyymmdd'),'day')from dual;  -- 指定天,即是四舍五入 周  最终指向周日

结果:
在这里插入图片描述

select round(to_date('20190625','yyyymmdd'),'month')from dual; -- 指定月,即是四舍五入 月  最终指向月初

结果:
在这里插入图片描述

select round(to_date('20190625','yyyymmdd'),'year') from dual; --指定年,即是四舍五入 年 最终指向元旦

结果:
在这里插入图片描述

9.获取指定年的元旦 / 月初 / 周日 trunc ( day , month , year )
select trunc(sysdate,'year') from dual;
select trunc(sysdate,'month') from dual;
select trunc(sysdate,'day') from dual;

结果:
在这里插入图片描述

(四)转换函数

1.将 日期格式 / 数字 转换成字符串 to_char
select to_char(sysdate,'yyyy-mm-dd') from dual;

结果:
在这里插入图片描述

2.将 字符串 转换成时间 to_date
select to_date('20190110102323','yyyymmdd hh24miss') from dual;

结果:
在这里插入图片描述

3.将字符串转换成数字 to_number
select to_number('18181') from dual;

结果:
在这里插入图片描述

( 五)其它函数

原始表
在这里插入图片描述

1.空值处理函数 ( 列,如果为 null 的值) NVL
select price,nvl(maxnum,1)  usenum from t_pricetable;

结果:
在这里插入图片描述

2.值处理函数 ( 列,如果不为 null 的值,如果为 null 的值 ) NVL2
select price ,nvl2(maxnum , maxnum, 2) usenum  from t_pricetable;

结果:
在这里插入图片描述

3.条件处理 decode
select id,name,decode(ownertypeid ,'1','家用电','2','事业用电','3','商业用电') from t_owners;

结果:
在这里插入图片描述

二、分析函数

1.相同的值,排名跳跃 rank
select rank() over(order by usenum desc)  ,usenum from t_account;

结果:
在这里插入图片描述

2.相同的值,排名连续 dense_rank
select dense_rank() over(order by usenum desc) ,usenum from t_account;

结果:
在这里插入图片描述

3.不同值,排名连续 row_number
select row_number() over(order by usenum desc) ,usenum from t_account;

结果:
在这里插入图片描述

三、集合运算

1.并集运算
不去重 union all
select * from t_owners where id >= 3
union all
select * from t_owners where id <= 7;

结果:
在这里插入图片描述

去重 union
select * from t_owners where id >= 3
union 
select * from t_owners where id <= 7;

结果:
在这里插入图片描述

2.交集运算 intersect
select * from t_owners where id >= 3
intersect
select * from t_owners where id <= 7;

结果:
在这里插入图片描述

3.差集运算 minus
select * from t_owners where id >= 3
minus
select * from t_owners where id <= 7; 

结果:
在这里插入图片描述

以下推荐个人文章
[亲测]Oracle数据库安装与配置

[亲测]Oracle数据库操作

[亲测]Oracle表的创建、修改与删除

[亲测]Oracle数据库约束

[亲测]Oracle数据增删改

[亲测]Oracle查询–单表查询,连接查询(一)

[亲测]Oracle查询–子查询,分页查询(二)

[亲测]Oracle查询–单行函数–PL/SQL,分析函数,集合运算(三)

Oracle执行计划Explain Plan 如何使用

[亲测]数据库优化

猜你喜欢

转载自blog.csdn.net/qq_43652509/article/details/86303911