oracle 根据substr 分组_Oracle - 函数及多表关联

28b172ced0894b36a852f810b9095d3c.png

函数一般是在数据上执行的,它给数据的转换和处理提供了方便。只是将取出的数据进行处理,不会改变数据库中的值。函数根据处理的数据分为单行函数和聚合函数(组函数),组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的having子句;单行函数对单个数值进行操作,并返回一个值。

dual是一个系统表。注意用于测试。

1 字符相关

-- 1.字符串连接
select concat('aa','12') from dual;
select 'aa'||'12' from dual;

-- 2.首字母大写
select initcap('abc') from dual;
--- 把大写转化小写
select lower('ABc') from dual;
select upper('abc') from dual;

-- 把所有员工的姓名小写输出
select lower(e.ename),e.empno
from emp e

-- 3.填充字符lpad/rpad
select lpad('sxt',5,'*') from dual;
select rpad('sxt',5,'*') from dual;

-- 4.去掉空白字符
select '  kallen' from dual;
select ltrim('  kallen',' ') from dual;
select rtrim('  kallen  ',' ') from dual;
-- trim 删除左右两边的字符
select trim('a' from 'abc') from dual;

-- 5.求子串 substr(str,loc,len)-->loc从1开始
select substr('abcd',2,2) from dual;

-- 6.查找字符串
/*
如果找到返回>=1的索引;如果没找到返回0
*/
select instr('abcd','b') from dual;

-- 7.求长度
select length('abcd') from dual;

2 数值型函数

-- 四舍五入round(x,y)对x保留y为小数
select round(23.652) from dual;
select round(23.652,1) from dual;
select round(25.652,-1) from dual;

-- 返回x按精度y截取后的值
select trunc(23.652) from dual;
select trunc(23.652,2) from dual;
select trunc(23.652,-1) from dual;

-- mod(x,y)求余数
select mod(9,2) from dual;

-- ceil 向上取整
select ceil(1.9) from dual;
-- floor 向下取整
select floor(1.9) from dual;

3 日期时间函数

-- 返回系统当前时间
select sysdate from dual;
-- 返回当前会话时区中的当前日期 
select current_date from dual;

-- 添加月数
select add_months(sysdate,1) from dual;
-- 返回两个时间相差的月数
select months_between(sysdate,add_months(sysdate,2)) from dual;

-- 需求:查询工作年限在30年以上
select e.ename,e.hiredate
from emp e
where months_between(sysdate,e.hiredate)/12 > 30

-- 返回date下一月份的最后一天
select last_day(add_months(sysdate,1)) from dual;
-- next_day(date1,week) 返回date1下周星期几的日期
select sysdate "当时日期",next_day(sysdate,'Monday') "下周星期一&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值