Oracle常用函数及示例(2)

select trunc(555.666) from dual; --返回结果为555,不加n时默认去掉小数部分 select trunc(555.666,2) from dual;--返回结果为555.66 select trunc(555.666,-2) from dual;--返回结果为500

  (5)round(value,n)对value进行四舍五入,保存小数点右侧的n位。如果n省略的话,相当于n=0的情况

select round(555.666) from dual;--返回结果为556,不加n时默认去掉小数部分 select round(555.666,2) from dual;--返回结果为555.67 select round(555.666,-2) from dual;--返回结果为600

         注意:1.trunc和round用法类似,只不过trunc是硬生生截取,并不进行四舍五入,而round进行截取时四舍五入
        2.都还可以对日期的截取,可以参考写的日期函数笔记

select round(sysdate,'year') from dual; select trunc(sysdate,'year') from dual;

3.转换函数

  将值从一种类型转换成另外一种类型,或者从一种格式转换为另外一种格式

  (1)to_char(x[,format]):将x转化为字符串。 format为转换的格式,可以为数字格式或日期格式

select to_char('12345.67') from dual; --返回结果为12345.67 select to_char('12345.67','99,999.99') from dual; --返回结果为12,345.67

  (2)to_number(x [,  format]):将x转换为数字。可以指定format格式

select to_number('970.13') + 25.5 from dual; select to_number('-$12,345.67', '$99,999.99') from dual;

  (3)cast(x as type):将x转换为指定的兼容的数据库类型

select cast(12345.67 as varchar2(10)),cast('05-7月-07' as date), cast(12345.678 as number(10,2)) from dual;

  (4)to_date(x [,format]):将x字符串转换为日期

select to_date('2012-3-15','YYYY-MM-DD') from dual

二.聚集函数

1.常用函数

  (1)avg(x):返回x的平均值

select avg(grade) from sc;

  (2)count(x):返回统计的行数

select count(name) from sc;

  (3)max(x):返回x的最大值

select max(grade) from sc;

  (4)min(x):返回x的最小值

select min(grade) from sc;

  (5)sum(x):返回x的总计值

select sum(grade) from sc;

2.对分组行使用聚集函数

  对分组后的行使用聚集函数,聚集函数会统计每组中的值,对于每组分别统计后返回一个值。

  示例

--按照职位分组,求出每个职位的最高和最低工资 select job ,max(sal),min(sal) from emp group by job order by job;

  注意:1.分组时select子句后边的列名必须与group by子句后的列名一致,除非是聚合函数

select deptno,avg(sal) from EMP;--错误,因为deptno不是聚集函数,也不是group by后面跟的列名

       2.不能使用聚集函数作为WHERE子句的筛选条件

select deptno from emp where avg(sal)>1000;--错误

     3.分组后,需要使用条件进行筛选,则使用having过滤分组后的行,不能使用where,where只能放在group by前面。

select deptno, avg(sal) from emp where deptno<>10 group by deptno having avg(sal) > 900;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8018b3c93aa324def3926a0ccf4a96d8.html