单行函数和多行函数和分组

<> 单行函数:一次操作一行
<> 多行函数:一次操作多行
// 虚拟表 dual用于测试:单行单列 ->单行

单行函数: 字符函数 数值函数 日期函数 通用函数 转换函数

字符函数 :

  1. lower(xxx)、、、转换成小写字母
  2. upper(XXX) 、、、转换成大写字母
  3. initcap(Xxx) 、、、将首字母转换成大写字母
  4. substr(str,begin,len) :从1开始数 、、、字符串截取函数
  5. length()字符数 / lengthb() 字节数1、、、查看字符/字节数
  1. insrt(str,substr)从1开始数 、、、在str中找substr的位置
  2. trim(‘x’ from ‘xxxhelloxxx’)、、、去掉任意字符,空格可简写trim(“ hello ”)
  3. lpad(‘str’,num,‘&’)/rpad(‘str’,num,‘&’)、、、在str左/右填充num-length(str)个&
  4. . replace(‘hello’,‘ll’,‘%’)——>‘he%%o’、、、替换

数值函数:

  1. round(数字,n位数)、、、四舍五入 ,保留n位小数
  2. trunc(数字,n位数)、、、舍尾,保留n位小数
  3. mod(13,3)=1、、、求余

日期函数:

  1. sysdate、、、当前时间
    a.日期±数字 (默认是天)
    b.日期 - 日期
格式化: 日期->字符
to_char(日期,格式)

在这里插入图片描述

  1. months_between(日期1,日期2)、、、 日期1-日期2相差几月
  2. add_months(日期,月数)
  3. last_day(sysdate)、、、当月最大是第几天
  4. next_day(sysdate,‘星期五’) 、、、下一个星期n是哪一天
  5. round(日期,年/月/日)、、、对年/月/日四舍五入
  6. trunc(日期,年/月/日)、、、对年/月/日截取

通用函数 :

  1. nvl(a,b)/nvl2(a,b,c)、、、判断空值
  2. nullif(a,b)、、、a=b,返回null ,否则返回a
  3. coalesce(a,b)、、、从左往后 找到第一个不为null的值
  4. decode(字段,条件1,返回值1,条件2,返回2,…,最后表达式)‘、、、条件判断函数
    、、、case when … then
    、、、when … then
    、、、else
    、、、end ;
select ename ,job ,sal  涨前,case job 
	when  'PRESIDENT' then sal+1000
	when  'MANAGER' then sal+500
	else  sal + 300 end
       涨后 
	from emp ; 

转换函数:

1. 隐式转换(自动)在这里插入图片描述

2. 显式转换
在这里插入图片描述

多行函数(组函数、 聚合函数)

  1. count() 、、、统计,自动排除null
  2. max()、、、最大
  3. min()、、、最小
  4. avg()、、、平均
  5. sum()、、、求和

分组

select deptno,ename , avg(sal) from emp group by deptno 

注意1 :

  • 分组查询时,不在组函数(多行函数)中的列,必须在group by中。

–求各个部门中各个工作 的平均工资

//先根据部门分组 ,再根据job分组
select deptno,job,avg(sal) from emp group by deptno ,job ;

注意2:

  • 对行筛选用where
  • 对组进行筛选用Having
  • 可以在Having使用多行函数count min avg
  • 但是 不能在where中使用多行函数

  1. 英文/数字 占一个字节
    中文/符号: utf-8编码格式下: 一个汉字/符号 占3个字节
    gbk: 一个汉字/符号 占2个字节
    可以查看当前系统编码格式:
    select * from nls_database_parameters ; ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值