沃梦达 / IT编程 / 数据库 / 正文

ORACLE 常用函数总结(80个)

本文档总结了 ORACLE 数据库常见的 80 种函数,分为以下几个部分:

ORACLE 常用函数总结(80个) - 完整攻略

简介

本文档总结了 ORACLE 数据库常见的 80 种函数,分为以下几个部分:

  1. 字符串函数
  2. 数字函数
  3. 日期函数
  4. 转换函数
  5. 聚合函数
  6. 分析函数

在使用这些函数之前,您需要具备一定的 ORACLE 数据库基础知识。

字符串函数

1. LENGTH函数

该函数用于返回字符串的长度,其语法如下:

LENGTH(string)

示例:

SELECT LENGTH('Hello, world!') FROM dual;
-- 结果为 13

2. SUBSTR函数

该函数用于返回字符串子串,其语法如下:

SUBSTR(string, start[, length])

其中,start 参数是开始位置的索引(从 1 开始),length 参数可选,表示子串的长度。

示例:

SELECT SUBSTR('Hello, world!', 7) FROM dual;
-- 结果为 world!

SELECT SUBSTR('Hello, world!', 7, 5) FROM dual;
-- 结果为 world

3. INSTR函数

该函数用于返回某个子串在字符串中第一次出现的位置,其语法如下:

INSTR(string, substring[, start[, occurrence]])

其中,string 是原始字符串,substring 是要查找的子串,start 是开始查找的位置(可选,默认为 1),occurrence 是要查找的子串的序号(可选,默认为 1)。

示例:

SELECT INSTR('Hello, world!', 'world') FROM dual;
-- 结果为 7

SELECT INSTR('Hello, world!', 'o', 5, 2) FROM dual;
-- 结果为 8

4. TRIM函数

该函数用于去除字符串两端的空格(或者其他字符),其语法如下:

TRIM([LEADING|TRAILING|BOTH] trim_character FROM string)

其中,LEADING 表示去除左边的字符,TRAILING 表示去除右边的字符,BOTH 表示左右两边都去除,trim_character 是要去除的字符,默认为空格。

示例:

SELECT TRIM('   Hello, world!   ') FROM dual;
-- 结果为 Hello, world!

SELECT TRIM(LEADING 'a' FROM 'aaaaaHello, world!aaaaa') FROM dual;
-- 结果为 Hello, world!aaaaa

数字函数

1. ROUND函数

该函数用于对数字进行四舍五入,其语法如下:

ROUND(number[, decimals])

其中,number 是要进行四舍五入的数字,decimals 表示要保留的小数位数(可选,默认为 0)。

示例:

SELECT ROUND(3.1415926, 2) FROM dual;
-- 结果为 3.14

2. TRUNC函数

该函数用于截取小数点后面的数字,其语法如下:

TRUNC(number[, decimals])

其中,number 是要截取的数字,decimals 表示要保留的小数位数(可选,默认为 0)。

示例:

SELECT TRUNC(3.1415926, 2) FROM dual;
-- 结果为 3.14

3. MOD函数

该函数用于计算两个数字相除的余数,其语法如下:

MOD(numerator, denominator)

其中,numerator 是分子,denominator 是分母。

示例:

SELECT MOD(10, 3) FROM dual;
-- 结果为 1

日期函数

1. SYSDATE函数

该函数用于获取当前的系统日期和时间,其语法如下:

SYSDATE

示例:

SELECT SYSDATE FROM dual;
-- 结果为当前的系统日期和时间

2. ADD_MONTHS函数

该函数用于在日期上增加指定的月数,其语法如下:

ADD_MONTHS(date, months)

其中,date 是要增加月份的日期,months 是要增加的月数。

示例:

SELECT ADD_MONTHS(SYSDATE, 2) FROM dual;
-- 结果为当前日期加 2 个月后的日期

3. MONTHS_BETWEEN函数

该函数用于计算两个日期之间相差的月数,其语法如下:

MONTHS_BETWEEN(date1, date2)

其中,date1date2 是要计算的两个日期。

示例:

SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('20210101', 'YYYYMMDD')) FROM dual;
-- 结果为当前日期和 2021 年 1 月 1 日相差的月数

转换函数

1. TO_CHAR函数

该函数用于将数值、日期等类型转换为字符类型,其语法如下:

TO_CHAR(value[, format])

其中,value 是要转换的值,format 是转换后的格式(可选)。

示例:

SELECT TO_CHAR(1234.5678, '9999.9999') FROM dual;
-- 结果为 1234.5678

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;
-- 结果为当前日期和时间的格式化字符串

2. TO_NUMBER函数

该函数用于将字符类型转换为数值类型,其语法如下:

TO_NUMBER(string[, format])

其中,string 是要转换的字符串,format 是转换后的格式(可选)。

示例:

SELECT TO_NUMBER('1234.5678', '9999.9999') FROM dual;
-- 结果为 1234.5678

聚合函数

1. AVG函数

该函数用于计算某一列的平均值,其语法如下:

AVG(column)

其中,column 是要计算平均值的列。

示例:

SELECT AVG(salary) FROM employees;
-- 计算 employees 表中 salary 列的平均值

2. COUNT函数

该函数用于计算某一列的行数,其语法如下:

COUNT(column|*)

其中,column 是要计算行数的列,* 表示计算所有行数。

示例:

SELECT COUNT(*) FROM employees;
-- 计算 employees 表的总行数

3. MAX函数

该函数用于计算某一列的最大值,其语法如下:

MAX(column)

其中,column 是要计算最大值的列。

示例:

SELECT MAX(salary) FROM employees;
-- 计算 employees 表中 salary 列的最大值

4. MIN函数

该函数用于计算某一列的最小值,其语法如下:

MIN(column)

其中,column 是要计算最小值的列。

示例:

SELECT MIN(salary) FROM employees;
-- 计算 employees 表中 salary 列的最小值

5. SUM函数

该函数用于计算某一列的总和,其语法如下:

SUM(column)

其中,column 是要计算总和的列。

示例:

SELECT SUM(salary) FROM employees;
-- 计算 employees 表中 salary 列的总和

分析函数

1. DENSE_RANK函数

该函数用于计算某一列的排名,其语法如下:

DENSE_RANK() OVER (ORDER BY column [ASC|DESC])

其中,column 是要排名的列,ASC 表示升序排列,DESC 表示降序排列。

示例:

SELECT employee_id, salary, DENSE_RANK() OVER (ORDER BY salary DESC) FROM employees;
-- 计算 employees 表中 salary 列的排名

2. LAG函数

该函数用于查询前一个数据,其语法如下:

LAG(column [, offset [, default]]) OVER (ORDER BY column)

其中,column 是要查询的列,offset 表示偏移量,default 表示默认值。

示例:

SELECT employee_id, salary, LAG(salary, 1, 0) OVER (ORDER BY salary DESC) as previous_salary FROM employees;
-- 计算 employees 表中 salary 列的前一个数据

以上只是本文档的一部分函数,更多函数请查看本文档。

本文标题为:ORACLE 常用函数总结(80个)