用户登录
用户注册

分享至

荐 Oracle的系统内置函数、数据分组

  • 作者: 亖呉?盀
  • 来源: 51数据库
  • 2021-08-28

Oracle的系统内置函数、数据分组

  • 系统内置函数
      • 单行函数
          • 字符函数
          • 数值函数
          • 日期和时间函数
          • 转换函数
          • 通用函数(处理非空值)
          • 条件表达式
      • 分组函数
  • 数据分组
  • 以!上!内!容!

系统内置函数

单行函数

字符函数

字符函数输入参数为字符类型,其返回值是字符类型或数字类型

  1. Upper():字符串转换成大写格式

  2. Lower():字符串转换为小写格式

  3. Initcap():字符串中每个单词的首字母大写,其他字符小写

  4. Concat():连接字符串

  5. Substr():截取字符

substr('Oracle',1,3)  结果:Ora
  1. Length():字符长度
  2. Lpad()/ Rpad():填充字符右到左 / 填充字符左到右
Lpad('字符串',m,‘n’)
Rpad('字符串',m,‘n’)
//m总字节,n是填充的字符
  1. Replace():换字符
Replace(‘字符串’,‘字符1’,‘字符2’)
//字符串中的字符1换成字符2
数值函数
  1. Round(n,m)四舍五入
  2. Trunc(n,m)截取函数
  3. Mod(n,m)求余
日期和时间函数
  1. Sysdate:系统时间
Select sysdate-1 昨天,sysdate 今天,sysdate+1 明天 from daul;
  1. Months_between():时间之差(月数)
Select months_between('现在系统时间','指定开始时间') from 表名;
  1. Add_months():返回指定时间之后的指定时间
Select Add_months('指定时间','任意整数') from 表名;
  1. Next_day():返回指定时间之后的第一个工作日
Select Next_day('指定时间','任意整数') from 表名;
  1. Last_day():当前月份的最后一天
Select  列名  from 表名 where 列名 = Last_day('列名');
  1. Round():返回时间值的四舍五入

Round(日期,m),m值是决定四舍五入的方式
year以7月1日为分界点,month以16日为分界点

设置系统时间‘12日-7月-20年’
Round('sysdate','year'),结果是:1日-1月-21年
Round('sysdate','month'),结果是:1日-7月-20年
转换函数

该函数用于把一种数据类型转换成另外一种数据类型。
Oracle可以隐式、自动的进行数据类型转换

  1. To_char():日期类型转换成字符类型
to_char('列名','转换格式')
Select to_char('列名','YYYY-MM-DD') from 表名; 
Select to_char('列名','YYYY"年"MM"月"DD"日"') from 表名; 
  1. To_char():数值类型转换成字符类型
to_char('指定数值','数字格式')
Select to_char('指定数值','L000,000') from 表名; //补全0
Select to_char('指定数值','L999,999') from 表名; //不补全0
  1. To_date():字符类型转换成日期类型
  2. To_dnumber():字符类型转换成数值类型
通用函数(处理非空值)

Oracle9i之前,处理null只能用函数NVL,但从Oracle9i之后,NVL或者NVL2 都可以处理NVL

  1. NVL()

Nvl(数值1,数值2),处理Null
如果数值1是Null,返回数值2;
如果数值1不是Null,返回数值1;

  1. NVL2()

Nvl(数值1,数值2,数值3),处理Null
如果数值1是Null,返回数值2;
如果数值1不是Null,返回数值3;

  1. Nullif()

Nullif(数值1,数值2),比较
如果两者相等,返回null
如果两者不相等,返回数值1

  1. Coalesce()

Coalesce(数值1,数值2,数值3,N)
返回第一个 不为空的数值

条件表达式

都可以用if_then_else逻辑判断

  1. Case
Case 列名
   when 指定值1 then 返回值1
   when 指定值2 then 返回值2
   when 指定值3 then 返回值3
   else 返回值4
end
  1. Decode()
Docode(列名,'列值1','返回值1','列值2','返回值2','列值3','返回值3','返回值4')

分组函数

  1. Avg() 求平均数
  2. Sum()求和
  3. Min()求最小值
  4. Max()求最大值
  5. Count()统计、计数
  6. Wm_concat() 行转换列

数据分组

  1. Group by

1. 在Select语句中未包含在函数中的列中,必须包含在group by子句里,但包含在group by子句中列,不必包含在select语句中
2. Where子句中 不允许使用分组函数,Having可以
3. 分组函数的嵌套函数必须加上Group by子句

  1. Having

Select->From->Where->Group by ->Having->order by

以!上!内!容!

以上内容仅为自我领悟、亲身碰遇困处或难处的学习笔记
如有错误,欢迎指正!!!

点击返回首目录

软件
前端设计
程序设计
Java相关