Oracle常用字符串函数及数学函数

Oracle是一种关系型数据库管理系统,它提供了许多内置函数,以便用户可以更轻松地处理数据。

1. 字符串函数

(1)lengthb/length

计算字符串长度

  • lengthb求得是字节(Byte,1Byte=8bit)长度
  • length求得是字符长度

1

2

select lengthb('中') from dual;

select length('中') from dual;

ZHS16GBK下,lengthb(‘中’)为2字节,length(‘中’)为1(个字符),即一个字符占两个字节

数据库中存储的CHAR(19) 表示占19个字节。

(2)SUBSTR

SUBSTR用于截取字符串的子串,需要注意的是Oracle 数据库中字符串的下标是从 1 开始而不是从 0 开始的。该函数的语法如下:

1

SUBSTR( string, start [, length] )

  • string是要截取的字符串
  • start是要开始截取的位置
  • length是要截取的子串长度(可选)

e.g.

1

select substr('abcdefg',0,3) from dual;

输出

abc

1

select substr('abcdefg',1,3) from dual;

输出

abc

1

select substr('abcdefg',2,3) from dual;

输出

bcd

1

select substr('abcdefg',-3,3) from dual;

输出

efg

(3)INSTR

INSTR 在字符串中搜索指定字符,返回发现指定字符的位置。该函数的语法如下:

1

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

  • string是要搜索的字符串
  • substring是要查找的子
  • start_position是要开始搜索的位置(可选)
  • occurrence是要查找的子串出现的次数(可选)

e.g.

1

Select instr('oracle training','ai') From dual;

输出

10

(4)CONCAT

CONCAT连接两个字符串

e.g.

1

SELECT CONCAT('Hello ', 'World', '!') FROM dual;

输出

Hello World!

按要求更新指定列:

1

Update t_skzy Set website=concat('http://',website) Where website Not Like 'http%' And website Like '%.%'

(5)REPLACE

REPLACE用于替换字符串的指定子串。该函数的语法如下:

1

REPLACE( string, substring1 [, substring2] )

  • string是要替换子串的字符串
  • substring1是要被替换的子串
  • substring2是用来替换substring1的字符串(可选)

e.g.

1

SELECT REPLACE('Hello World!', 'Hello', 'Goodbye') FROM dual;

输出:

“Goodbye World!”

(6)TRIM, LTRIM, RTRIM

TRIM:去除字符串的空格或指定字符

语法如下:

1

TRIM([leading|trailing|both] [trim_character] FROM string)

  • leading|trailing|both:可选参数,用于指定去除字符串的空格或指定字符是在字符串的前面、后面还是两边,默认为 both。
  • trim_character:可选参数,用于指定要去除的字符,默认为字符串中的空格。
  • string:必需参数,要去除空格或指定字符的字符串。

LTRIM :去除字符串左侧的空格或指定字符。

语法如下:

1

LTRIM([trim_character] FROM string)

trim_character:可选参数,用于指定要去除的字符,默认为字符串中的空格。string:必需参数,要去除空格或指定字符的字符串。

e.g.

1

Select ltrim('trimtest ltrim ','trim') From dual

输出

test ltrim

RTRIM :去除字符串右侧的空格或指定字符。

语法如下:

1

RTRIM([trim_character] FROM string)

  • trim_character:可选参数,用于指定要去除的字符,默认为字符串中的空格。
  • string:必需参数,要去除空格或指定字符的字符串。

(7)ASCII

ASCII返回给定字符串中第一个字符的ASCII代码值。

e.g.

1

SELECT ASCII('A') FROM dual;

输出

65

(8)NVL

1

NVL( string1, replace_with)

如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。

例如,以下查询将返回一个包含员工的职务和部门名称的结果,如果员工所在的部门为空,则返回“Unknown Department”:

1

2

SELECT job_id, NVL(department_name, 'Unknown Department')

FROM employees e LEFT JOIN departments d ON e.department_id = d.department_id;

(9)INITCAP,LOWER,UPPER

  • INITCAP 将字符串第一个字母变为大写
  • LOWER 将字符串所有字母小写
  • UPPER 将字符串所有字母大写

2. 数学函数

(1) ROUND

ROUND函数用于将数字四舍五入到指定的小数位数。例如将数字3.1415926四舍五入到两个小数位:

1

SELECT ROUND(3.1415926, 2) AS RoundedNumber FROM dual;

输出

3.14

(2)TRUNC

TRUNC函数用于将数字截断为指定的小数位数。例如将数字3.1415926截断为两个小数位:

1

SELECT TRUNC(3.1415926, 2) AS TruncatedNumber FROM dual;

输出

3.14

(3)ABS

ABS函数用于计算数字的绝对值。例如计算数字-10的绝对值:

1

SELECT ABS(-10) AS AbsoluteValue FROM dual;

输出

10

(4)POWER

POWER函数用于计算数字的幂。例如计算2的3次方:

1

SELECT POWER(2, 3) AS PowerValue FROM dual;

输出

8

(5)MOD

MOD取模运算,返回两个数相除的余数。

e.g.

1

SELECT MOD(5, 2) FROM dual;

输出

1

(6)其他

  • CEIL: 返回比输入值大的最小整数。
  • FLOOR: 返回比输入值小的最大整数。
  • MOD: 返回两个数值相除的余数。

转自:微点阅读   https://www.weidianyuedu.com

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值