oracle常用函数详解(详细)

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内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(16) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部