oracle常用函数 (一)

本文详细介绍了Oracle SQL中的INSTR()函数用于查找子串位置,SUBSTR(), LEFT(), RIGHT()用于字符串截取,以及LPAD()和RPAD()进行字符串填充。同时涵盖了LENGTH()和LENGTHB()的字符长度计算,适合深入理解SQL字符串操作。
摘要由CSDN通过智能技术生成

1. INSTR() 返回要截取的字符串在源字符串中的位置

  • instr(源字符串,要查找的字符串 , start哪个位置开始查找,查找第几次出现的)

默认从位置1开始查找,默认查找第1次出现的;

如果start为负数,则表示从右往左查找,但是查找结果仍是从左往右计算后的结果。

        instr('sadhuqad','a',1,1)

注: 也可用于搜索源字符串中是否包含某个特定字符:

        当instr() > 0,表示某个字段含有某个字符串;当instr() = 0,表示没有某个字符串

2. SUBSTR(),LEFT(),RIGHT() 截取字符串

  • substr(str, start, length)

其中,str是源字符串(下同),start是开始截取的位置,length是要截取的长度。

start为0或1时,都是指从字符串的第1个字符开始截取,这个需要注意! 当start为负数时,表示截取的开始位置为字符串右端向左数第start个字符。

substr('Hello World',0,1)   //返回结果为 "H"

substr('Hello World',1,1)   //返回结果为 "H"

substr('Hello World',2,4)   //返回结果为 "ello"

substr('Hello World',-3,3)  //返回结果为 "rld"

substr('Hello World',5,3)   //返回结果:"o W" (中间的空格也算一个字符串)

  • left(str, length) 从左向右截取

其中,length是截取字符长度

  • right(str, length)  从右向左截取

其中,length是截取字符长度

注:oracle仅支持substr()函数,sql sever支持上述所有三种

3. LPAD()字符串左填充, RPAD() 字符串右填充

  • lpad(str, length, padstr)  返回字符串str,将其左侧填充字符串padstr至length个字符的长度。 如果str大于length,则返回值缩短为length个字符。

其中,str是源字符串,length是填充后的字符串长度,padstr是要填充的字符串。

  • rpad(str, length, padstr) 返回字符串str,将其右侧填充字符串padstr至length个字符的长度。 如果str大于length,则返回值缩短为length个字符。

4. LENGTH() 获取字符长度,LENGTHB()获取字节长度

        length('abc') = 3.      lengthb('abc') = 3. 

        length(‘张三’) = 2.     lengthb('张三') = 4或者6*   

*这里是因为在不同数据库中,因字符集不同导致编码不同,1个汉字可能占2个(ZHS16GBK)或者3个字节(AL32UTF8)。

       可以使用 length()<>lengthb() 来判断字符中是否含有中文。

注: sql server中是LEN()计算长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值