10 SQL语言——函数

函数分类

单行函数

  • 字符函数 数值函数 日期函数
  • 转换函数 通用函数

(分组)多行函数

  • sum() avg() 仅适用于数值型
  • count() max() min() 适用于任何类型

其它函数

  • nvl()
  • nvl2()
  • decode()

单行函数

字符函数

 

 

数值函数

 

 

日期函数

 

ROUND()函数详解:

四舍五入规则:

--year:1-6月为小,7-12月为大
--month:1-15日为小,16-31日为大
--day:本周日-周三(含)舍为本周日 周四周五周六入到下周日  (周日为每周的第一天)

转换函数

常用的转换函数有:to_char() to_date() to_number()

  • -- to_number():将数值类型的字符转换为数值
  • -- to_char()将数值或日期类型的数据转化为字符类型
  • -- to_date() 将字符类型(格式为日期类型)的数据转换为日期类型
  • --注意:number类型不能直接转为日期类型

--char-->number

  • select to_number('123'+2) from dual;

--number-->char

  • --自动转换(隐式转换):字符类型的数字与数字型数字进行运算时,会进行自动转换
    • select 123+'2' from dual;
  • --显示转换:to_char(字符型数字,格式)
    • --格式:9,表示占位,例如999,999,999会将数字三个一组使用逗号隔开
    • --格式:L表示人民币符号,$表示美元符号
    • --格式:0,表示占位,但是如果数据长度不足,会使用0补足
    • --格式:如果数据比给的格式长度还长,则全显示为#符号
    •   select to_char('21343543324','L999,999,999,999,999') from dual;
    •   select to_char('21343543324','L000,000,000,000,000') from dual;
    •   select to_char('21343543324','L000,000,000') from dual;

--char->date

  • --to_date('字符日期',对应转换格式)
    •   select to_date('20190201','yyyymmdd') from dual;
    •   select to_date('2019/02/12','yyyy/mm/dd') from dual;

--date-->char

  • --to_char(date,'格式')
    •        select to_char(hiredate,'yyyy-mm-dd'),ename from emp;
    •   select to_char(hiredate,'yyyy"年"mm"月"dd"日"'),ename from emp;

分组函数(多行函数)

常用的分组函数有:max,min,avg,sum,count

值得注意的两点点:

1.分组函数不能和其它字段混用,除非分组(group by)否则报错,如:

  • select min(sal),ename from emp;--错误
  • select min(sal),job from emp group by job;--正确

2.count函数只值不为空的记录。

其它函数

  • NVL(字段,默认值): 当字段不为0时,返回字段的值,否则返回默认值
  • NVL2(字段,值1,值2) :当字段为0时,返回值2,否则返回值1
  • DECODE(值1,处理1,值2,处理2...)
--nvl(字段,值)
select sal+nvl(comm,0),sal,comm from emp;
--nvl2(字段,值1,值2)
select sal,comm,nvl2(comm,sal+comm,sal)from emp;
--decode(字段,值1,处理1,值2,处理2...默认处理)
select ename,decode(job,'SALESMAN','销售人员','MANAGER','经理','其它') from emp;

  

posted @ 2020-02-11 12:21  Scorpicat  阅读(173)  评论(0编辑  收藏  举报