Oracle是一种关系型数据库管理系统,它提供了许多内置函数,以便用户可以更轻松地处理数据。
1. 字符串函数
(1)lengthb/length
计算字符串长度
- lengthb求得是字节(Byte,1Byte=8bit)长度
- length求得是字符长度
1 2 |
|
ZHS16GBK下,lengthb(‘中’)为2字节,length(‘中’)为1(个字符),即一个字符占两个字节
数据库中存储的CHAR(19) 表示占19个字节。
(2)SUBSTR
SUBSTR
用于截取字符串的子串,需要注意的是Oracle 数据库中字符串的下标是从 1 开始而不是从 0 开始的。该函数的语法如下:
1 |
|
- string是要截取的字符串
- start是要开始截取的位置
- length是要截取的子串长度(可选)
e.g.
1 |
|
输出
abc
1 |
|
输出
abc
1 |
|
输出
bcd
1 |
|
输出
efg
(3)INSTR
INSTR
在字符串中搜索指定字符,返回发现指定字符的位置。该函数的语法如下:
1 |
|
- string是要搜索的字符串
- substring是要查找的子
- start_position是要开始搜索的位置(可选)
- occurrence是要查找的子串出现的次数(可选)
e.g.
1 |
|
输出
10
(4)CONCAT
CONCAT
连接两个字符串
e.g.
1 |
|
输出
Hello World!
按要求更新指定列:
1 |
|
(5)REPLACE
REPLACE
用于替换字符串的指定子串。该函数的语法如下:
1 |
|
- string是要替换子串的字符串
- substring1是要被替换的子串
- substring2是用来替换substring1的字符串(可选)
e.g.
1 |
|
输出:
“Goodbye World!”
(6)TRIM, LTRIM, RTRIM
TRIM
:去除字符串的空格或指定字符
语法如下:
1 |
|
leading|trailing|both
:可选参数,用于指定去除字符串的空格或指定字符是在字符串的前面、后面还是两边,默认为 both。trim_character
:可选参数,用于指定要去除的字符,默认为字符串中的空格。string
:必需参数,要去除空格或指定字符的字符串。
LTRIM
:去除字符串左侧的空格或指定字符。
语法如下:
1 |
|
trim_character
:可选参数,用于指定要去除的字符,默认为字符串中的空格。string
:必需参数,要去除空格或指定字符的字符串。
e.g.
1 |
|
输出
test ltrim
RTRIM
:去除字符串右侧的空格或指定字符。
语法如下:
1 |
|
trim_character
:可选参数,用于指定要去除的字符,默认为字符串中的空格。string
:必需参数,要去除空格或指定字符的字符串。
(7)ASCII
ASCII
返回给定字符串中第一个字符的ASCII代码值。
e.g.
1 |
|
输出
65
(8)NVL
1 |
|
如果string1为NULL,则NVL
函数返回replace_with的值,否则返回string1的值。
例如,以下查询将返回一个包含员工的职务和部门名称的结果,如果员工所在的部门为空,则返回“Unknown Department”:
1 2 |
|
(9)INITCAP,LOWER,UPPER
- INITCAP 将字符串第一个字母变为大写
- LOWER 将字符串所有字母小写
- UPPER 将字符串所有字母大写
2. 数学函数
(1) ROUND
ROUND
函数用于将数字四舍五入到指定的小数位数。例如将数字3.1415926四舍五入到两个小数位:
1 |
|
输出
3.14
(2)TRUNC
TRUNC
函数用于将数字截断为指定的小数位数。例如将数字3.1415926截断为两个小数位:
1 |
|
输出
3.14
(3)ABS
ABS
函数用于计算数字的绝对值。例如计算数字-10的绝对值:
1 |
|
输出
10
(4)POWER
POWER
函数用于计算数字的幂。例如计算2的3次方:
1 |
|
输出
8
(5)MOD
MOD
取模运算,返回两个数相除的余数。
e.g.
1 |
|
输出
1
(6)其他
- CEIL: 返回比输入值大的最小整数。
- FLOOR: 返回比输入值小的最大整数。
- MOD: 返回两个数值相除的余数。