Oracle 是世界上最常用的关系型数据库管理系统之一,它拥有大量的内置函数和运算符来方便在 SQL 中进行各种数据操作。这里我们将对 Oracle 常用函数进行详细介绍,包括使用方法和案例说明。
1. 字符串函数
1.1 LENGTH 函数
LENGTH 函数用于获取给定字符串的长度,语法如下:
```
LENGTH(string)
```
其中,string 为要获取长度的字符串。
示例:
```
SELECT LENGTH('Hello world') AS length FROM dual;
```
结果:
```
LENGTH
11
```
1.2 SUBSTR 函数
SUBSTR 函数用于截取给定字符串的子串,语法如下:
```
SUBSTR(string, start_position, [ length ])
```
其中,string 为要截取的字符串,start_position 为截取的起始位置,length 为要截取的长度。
示例:
```
SELECT SUBSTR('Hello world', 1, 5) AS substr FROM dual;
```
结果:
```
SUBSTR
Hello
```
1.3 REPLACE 函数
REPLACE 函数用于替换给定字符串中的子串,语法如下:
```
REPLACE(string, search_string, replacement_string)
```
其中,string 为要替换的字符串,search_string 为要被替换的子串,replacement_string 为替换后的子串。
示例:
```
SELECT REPLACE('Hello world', 'o', 'i') AS replace_str FROM dual;
```
结果:
```
REPLACE_STR
Helli wirld
```
1.4 UPPER 和 LOWER 函数
UPPER 函数和 LOWER 函数用于将给定字符串转换为全大写或全小写,语法如下:
```
UPPER(string)
LOWER(string)
```
其中,string 为要转换的字符串。
示例:
```
SELECT UPPER('Hello world') AS upper_str,
LOWER('Hello WORLD') AS lower_str
FROM dual;
```
结果:
```
UPPER_STR LOWER_STR
HELLO WORLD hello world
```
1.5 TRIM 函数
TRIM 函数用于去除给定字符串中的空格,语法如下:
```
TRIM([ LEADING | TRAILING | BOTH ] [ characters ] FROM string)
```
其中,LEADING 表示去除字符串开头的空格,TRAILING 表示去除字符串末尾的空格,BOTH 表示去除字符串开头和末尾的空格,characters 表示要去除的字符集,如果不指定,则去除空格。
示例:
```
SELECT TRIM(' Hello world ') AS trim_str,
TRIM(LEADING 'H' FROM 'Hello world') AS leading_str,
TRIM(TRAILING 'ld' FROM 'Hello world') AS trailing_str,
TRIM(BOTH 'Hlo' FROM 'Hello world') AS both_str
FROM dual;
```
结果:
```
TRIM_STR LEADING_STR TRAILING_STR BOTH_STR
Hello world ello world Hello wor world
```
2. 数值函数
2.1 ROUND 函数
ROUND 函数用于对给定的数值进行四舍五入,语法如下:
```
ROUND(number, [ decimals ])
```
其中,number 为要进行四舍五入的数值,decimals 为要保留的小数位数,默认为 0。
示例:
```
SELECT ROUND(3.1415926, 2) AS round_num FROM dual;
```
结果:
```
ROUND_NUM
3.14
```
2.2 TRUNC 函数
TRUNC 函数用于对给定的数值进行截断操作,语法如下:
```
TRUNC(number, [ decimals ])
```
其中,number 为要进行截断的数值,decimals 为要保留的小数位数,默认为 0。
示例:
```
SELECT TRUNC(3.1415926, 2) AS trunc_num FROM dual;
```
结果:
```
TRUNC_NUM
3.14
```
2.3 ABS 函数
ABS 函数用于求给定数值的绝对值,语法如下:
```
ABS(number)
```
其中,number 为要求绝对值的数值。
示例:
```
SELECT ABS(-10) AS abs_num FROM dual;
```
结果:
```
ABS_NUM
10
```
2.4 MOD 函数
MOD 函数用于求给定数值的余数,语法如下:
```
MOD(dividend, divisor)
```
其中,dividend 为被除数,divisor 为除数。
示例:
```
SELECT MOD(10, 3) AS mod_num FROM dual;
```
结果:
```
MOD_NUM
1
```
2.5 POWER 函数
POWER 函数用于求给定数的 n 次幂,语法如下:
```
POWER(base, exponent)
```
其中,base 为底数,exponent 为指数。
示例:
```
SELECT POWER(2, 3) AS power_num FROM dual;
```
结果:
```
POWER_NUM
8
```
3. 日期函数
3.1 SYSDATE 函数
SYSDATE 函数用于获取当前系统时间,语法如下:
```
SYSDATE
```
示例:
```
SELECT SYSDATE FROM dual;
```
结果:
```
SYSDATE
-------------------------
2022-04-13 16:48:15
```
3.2 TO_CHAR 函数
TO_CHAR 函数用于将给定日期转换为指定格式的字符串,语法如下:
```
TO_CHAR(date, format)
```
其中,date 为要转换的日期,format 为要转换的格式,具体格式参考 Oracle 官方文档。
示例:
```
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS date_str FROM dual;
```
结果:
```
DATE_STR
------------------------
2022-04-13 16:53:41
```
3.3 ADD_MONTHS 函数
ADD_MONTHS 函数用于对给定日期增加指定月数,语法如下:
```
ADD_MONTHS(date, months)
```
其中,date 为要增加月数的日期,months 为要增加的月数。
示例:
```
SELECT ADD_MONTHS(SYSDATE, 1) AS add_month FROM dual;
```
结果:
```
ADD_MONTH
-------------------------
2022-05-13 16:59:15
```
3.4 MONTHS_BETWEEN 函数
MONTHS_BETWEEN 函数用于计算两个日期之间相差的月数,语法如下:
```
MONTHS_BETWEEN(start_date, end_date)
```
其中,start_date 为起始日期,end_date 为结束日期。
示例:
```
SELECT MONTHS_BETWEEN(TO_DATE('2022-02-01', 'YYYY-MM-DD'), SYSDATE) AS months_bet FROM dual;
```
结果:
```
MONTHS_BET
----------------------------
2.771607630615388364976958525
```
3.5 LAST_DAY 函数
LAST_DAY 函数用于获取给定日期所在月份的最后一天,语法如下:
```
LAST_DAY(date)
```
其中,date 为要获取最后一天的日期。
示例:
```
SELECT LAST_DAY(SYSDATE) AS last_day FROM dual;
```
结果:
```
LAST_DAY
-----------------------
2022-04-30 16:59:15
```
4. 聚合函数
4.1 AVG 函数
AVG 函数用于计算给定列的平均值,语法如下:
```
AVG(column)
```
其中,column 为要计算平均值的列。
示例:
```
SELECT AVG(salary) AS avg_salary FROM employees;
```
结果:
```
AVG_SALARY
--------------------------
6461.682242990654205607476
```
4.2 COUNT 函数
COUNT 函数用于计算给定列的行数,语法如下:
```
COUNT(column)
```
其中,column 为要计算行数的列,如果不指定,则计算全部行数。
示例:
```
SELECT COUNT(*) AS count_all FROM employees;
```
结果:
```
COUNT_ALL
------------------
107
```
4.3 MAX 函数
MAX 函数用于计算给定列中的最大值,语法如下:
```
MAX(column)
```
其中,column 为要计算最大值的列。
示例:
```
SELECT MAX(salary) AS max_salary FROM employees;
```
结果:
```
MAX_SALARY
---------------------------
24000
```
4.4 MIN 函数
MIN 函数用于计算给定列中的最小值,语法如下:
```
MIN(column)
```
其中,column 为要计算最小值的列。
示例:
```
SELECT MIN(salary) AS min_salary FROM employees;
```
结果:
```
MIN_SALARY
-----------------------
2100
```
4.5 SUM 函数
SUM 函数用于计算给定列的总和,语法如下:
```
SUM(column)
```
其中,column 为要计算总和的列。
示例:
```
SELECT SUM(salary) AS sum_salary FROM employees;
```
结果:
```
SUM_SALARY
-------------------------
693816
```
5. 其他函数
5.1 NVL 函数
NVL 函数用于将给定列中的空值替换为指定的值,语法如下:
```
NVL(column, value)
```
其中,column 为要替换空值的列,value 为替换后的值。
示例:
```
SELECT NVL(commission_pct, 0) AS commission FROM employees;
```
结果:
```
COMMISSION
-----------------------------
0
0.1
0
0
0
...
```
5.2 DECODE 函数
DECODE 函数用于在给定一组表达式和值之间进行判断,返回匹配的值,语法如下:
```
DECODE(expression, value1, result1 [, value2, result2, ...] [, default])
```
其中,expression 为要判断的表达式,value1、value2 等为表达式可能的值,result1、result2 等为对应的返回结果,default 为不匹配时的默认返回值。
示例:
```
SELECT DECODE(job_id, 'ST_CLERK', 'Clerk', 'ST_MAN', 'Manager', job_id) AS job_title
FROM employees;
```
结果:
```
JOB_TITLE
------------------------------
Clerk
Manager
Clerk
Manager
...
```
以上是 Oracle 常用的函数,它们的使用方法和参数含义可能会因具体情况而异,需要结合实际应用进行灵活运用。
壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复