ORACLE 常用函数总结(80个) - 完整攻略
简介
本文档总结了 ORACLE 数据库常见的 80 种函数,分为以下几个部分:
- 字符串函数
- 数字函数
- 日期函数
- 转换函数
- 聚合函数
- 分析函数
在使用这些函数之前,您需要具备一定的 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)
其中,date1
和 date2
是要计算的两个日期。
示例:
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个) - Python技术站