一.单行函数

注:dual 是一个虚表,不能保存任何数据,只有一个字段,一行记录

1.语义

单行函数  一条记录返回一个结果

2.字符函数

1.lower():转小写 ,upper():转大写, initcap首字母大写

select lower(ename) from emp;

2.concat():连接两个值,等同||

select concat(ename,sal)from emp;

3.substr (‘’,n1,n2) n1指定位置,n2指定长度 从1开始,省略n2,从n1开始截取到最后,n1为负值倒着数n个

select substr('hello',2,2) from dual;

4.length() 获取字符串长度

select length('hello')from dual;

5.instr(s1,s2,n1,n2) 返回s1中,字串S2从n1开始,第n2次出现的位置,n1,n2默认值为1

select instr('string','r')from dual;
--结果为3

6.lpad(s1,n1,s2) s1被s2从左面填充n1个长度(总长度)

 select lpad('hi',3,'hello') from dual;--结果为 hhi

7.rpad()同上只不过是从右面填充

8.trim() 去除字符串头部或尾部的字符

select trim('s' from 'sssis') from dual;
--结果为 i

9.replace(s1,s2,s3) 把s1中的s2用s3替换

select replace('strrring','r','a')from dual;
--结果为 staaaing

3.数值函数

1.round(n1,n2):四舍五入 n1数值 n2保留几位可取负值

select round(203,-1)from dual;
--200

2.trunc(n1,n1):n1为数值n2为截取的长度 可为负数   不舍不入

select trunc(223,-2) from dual;--200

3.MOD(m,n) 取m/n的余数

select mod(223,2) from dual;
--1

4.日期函数

1.Oracle中默认的日期格式为 RR格式

DD-MON-RR 1998年12月20日即‘20-12月--98’

当前年份(0-49),则取这世纪的(0-49),上世纪的(50,99)

2.sysdate系统当前日期

select sysdate from dual;

3.日期的加减

 select (sysdate - hiredate)/365 年,(sysdate - hiredate) 天 from dual

4.months_between(d1,d2) 返回两日期相差的月数

select months_between(sysdate,hiredate) 月from emp;

5.add_months(d1,n1)d1为日期  返回d1过n1个月后的日期

select add_months(sysdate,1) from dual;

6.next_day(d,w) 返回d日期之后的星期w

select next_day(sysdate,'星期五') from dual;

7.last_day(d)   返回指定日期月份的最后一天

select last_day(sysdate) from dual;

8.round(d,'m') 返回d日期四舍五入后的日期, m 可为month,year

select round(sysdate,'month') from dual;

9.trunc(d,'m')  返回d日期截取后的日期, m 可为month,year

select trunc(sysdate,'month') from dual;

10.extract()  返回指定日期中的年份,月份或者日

select sysdate, extract (year from sysdate) from dual;
--2021

5.转换函数

1.to_char() 转换成字符

select to_char(hiredate,'day') from emp;
--显示的是星期几

2.to_date(date,格式)  转换成日期

select to_date('2020-10-10','yyyy-mm-dd') from dual;  

3.to_number()转换为数值

select to_number('25') from dual;
--只有这样的才能转为数字

6.通用函数

1.case 多条件比较

select ename,deptno,(case deptnowhen 10 then '销售部'when 20 then '研发部'when 30 then '管理部'else '无' end) from emp;  

2.nvl(par1,num) 将空值指成具体数值

select nvl(null,3) from dual;
--3

3.coalesce(par1...) 返回第一个不为空的参数,参数不限

select coalesce(null,null,3) from dual;
--3

二.多行函数  多个记录返回一个结果

1.五个聚合函数

1.max()计算最大值

select max(sal) from emp;

2.min():计算最小值

select min(hiredate) from emp;

3.avg():计算平均值 avg 将null值过滤了并且没把null值参与平均计算

select avg(comm) from emp;--550
select avg(nvl(comm,0))from emp;--157

4.sum():求和

select sum(hiredate) from emp;

5.count():计算总记录数 不过滤null值,以上4个均过滤null值

select count(empno) from emp;

2.group by 分组函数

1.特点

写在where之后,order by之前

select 列表中所有普通字段(即没有聚合函数等的字段)都必须放在group by中

group by中出现的字段不一定出现在select中

处理多条数据返回一个结果 也可以将表分成多个组 可以将 整个表作为一组

2.按照多列分组 即group by 后面跟着多个字段

select deptno,job
from emp
where deptno=10
group by deptno,job;

3.如果条件是过滤聚合函数,不能用where进行过滤,只能通过having

having只能在分组的基础上进行的过滤的是分组函数

select deptno,max(sal)
from emp
group by deptno
having max(sal)>500;

三.select 执行顺序

1.from  2.where  3.group by    4.having 5. select 6. orderby

注:函数之间可以相互嵌套

Oracle中的SQL函数(全)相关推荐

  1. oracle怎么用charindex,SQL中Charindex和Oracle中对应的函数Instr对比

    sql :charindex('字符串',字段)>0 charindex('administrator',MUserID)>0 oracle:instr(字段,'字符串',1,1) > ...

  2. oracle中存储过程和函数有什么区别,Oracle中存储过程和函数的区别

    Oracle中存储过程和函数的区别 存储过程和函数:  www.2cto.com 例子: [sql] //创建过程 create or replace procedure add_emailinfo( ...

  3. oracle substr(table),oracle中的substr()函数

    SUBSTR(cExpression,nStartPosition [,nCharactersReturned]) 其中,cExpression指定要从其中返回字符串的字符表达式或备注字段: nSta ...

  4. Oracle中的AWR,全称为Automatic Workload Repository

    Oracle中的AWR,全称为Automatic Workload Repository,自动负载信息库.它收集关于特定数据库的操作统计信息和其他统计信息,Oracle以固定的时间间隔(默认为1个小时 ...

  5. Oracle 实验五:Oracle中的SQL使用

    实验五:Oracle中的SQL使用 一.实验目的 1.掌握SQL语言中常用系统函数: 2.掌握SQL语言的应用. 二.实验内容 1. 查询SQL中如下常用函数的使用,并举例说明(完成格式参考Lengt ...

  6. oracle中的trim函数使用介绍

    Oracle TRIM函数是很常见的函数,下面对Oracle TRIM函数的语法作了详尽的阐述说明,希望可以让您对Oracle TRIM函数有更深的认识. 如果提到Oracle TRIM函数,最简单的 ...

  7. oracle中如何写函数【oracle技术】

    oracle中如何写函数[oracle技术] | 浏览:1377 | 更新:2014-04-29 23:14 | 标签:oracle 在oracle数据开发中函数是必不可少的.函数可以一般是可以完成某 ...

  8. oracle中日期自动补全,没有数据自动补0

    oracle中日期自动补全,没有数据自动补0 1. 描述 最近在项目中遇到一个问题,在进行oracle相关查询操作的时候,查询某个月的数据,这个月中某些日期没有数据,就造成了日期的缺失,我想做的就是不 ...

  9. Oracle中使用SQL根据出生日期精确计算年龄

    Oracle中使用SQL根据出生日期精确计算年龄 提示:以下是本篇文章正文内容,下面案例可供参考 代码如下(示例): select XM,CSNY as 出生日期,-- extract函数用于提取日期 ...

  10. oracle分类函数总结,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

最新文章

  1. 哈希表(HASHTABLE)
  2. 易想商城V4.7.1 过期到期解决办法
  3. IntelliJ IDEA2017 激活方法 最新的
  4. 四参数坐标转换c++_GPSRTK坐标转换及四参数、七参数适用条件
  5. JQuery data API实现代码分析
  6. leetcode题解50-Pow(x,n)
  7. java Math类与Number类
  8. CakePHP 2.x CookBook 中文版 第三章 入门(三)
  9. java入门之IDE开发工具:简介·下载·安装
  10. book回车键 mac_macbook pro键盘失灵 macbook pro键盘失灵解决办法
  11. DDR3 内存带宽计算
  12. 轻松记录南极最美丽风景 有TA就已经足够
  13. 为什么c语言加法错误,分数的加减法——C语言初学者代码中的常见错误与瑕疵(12)...
  14. linux 内存映射-ioremap和mmap函数
  15. 2021-2027全球与中国草坪和花园用品市场现状及未来发展趋势
  16. 安卓中的hander
  17. 确定性网络:从“尽力而为”到“确定承诺”
  18. (附源码)ssm电影院管理系统的设计与实现 毕业设计241505
  19. [UE4]战争迷雾 VaFogOfWar插件使用方法
  20. SBM模型分析全流程

热门文章

  1. 《资治通鉴-卷四(一)
  2. Q格式-TI的dsp的IQmath学习
  3. Git入门——tortoisegit使用问题:git不显示图标?
  4. 语文数学英语计算机文理科,高考文理科英语试卷一样吗
  5. 两分钟读懂什么是TPS和QPS
  6. mysql查询之左连接查询与右连接查询
  7. java反射机制和运用
  8. from_tensor_slices()
  9. 用canvas实现一个简易的涂鸦画板
  10. 2023年计算机专业毕业设计选题有哪些?(附源码)