oracle substr,substrb ,instr,instrb函数的用法以及like的优化

转载 2016年08月30日 22:30:19

oracle substr,substrb ,instr,instrb函数的用法以及like的优化

 

--------------------substr,substrb----------------

 

说明:substr,substrb均为字符串截取函数,都带有三个参数,第一个参数为所要截取的字符串,第二个参数为strart(索引均从1开始),第三个参数为length。

SQL> select substr('今天是个好日子',3,5) from dual;
----------
是个好日子

SQL> select substrb('今天是个好日子',3,5) from dual;
-----
天是

结论是substr是按照字来算的,而substrb()是按照字节来算的。看下面的例子:

SQL> select substr('abcdef',3,4) from dual;
----
cdef

SQL> select substrb('abcdef',3,4) from dual;
----
cdef

分析:对于字母来说,substr与substrb作用时一样的,但对于汉字来说,substr是按字来取值,而substrb是按字节来取值,当所取长度为奇数时,则自动舍弃最后一位字节。
类似的还有,

length与lengthb 长度计算函数 

select length('你好') from dual         ----output:2

select lengthb('你好') from dual       ----output :4

 

------------------------instr,instrb-----------------

 

Instr与Instrb 字符串查找函数 instr(原字符串,查的字符串,起始位置,第几个匹配) 返回字符串位置,找不到返回0 .

select instr('日日花前长病酒','花前',1,1) from dual     ----output:3

select instrb('日日花前长病酒','花前',1,1) from dual     ----output:5(在windows下pl/sql 9.5--oracle 9i测的结果为7)

----------------------nvl函数--------------------------

 

 如果你某个字段为空,但是你想让这个字段显示0
nvl(字段名,0),就是当你选出来的时候,这个字段虽然为空,但是显示的是0,当然这个0也可以换成其他东西,如:1,2,3……

 

----------------like 的优化方案-------------------------

 

 col like '%xxxx%'用instr(col,'XXXX')=0 替代

相关文章推荐

Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace

Oracle使用正则表达式离不开这4个函数:1。regexp_like2。regexp_substr3。regexp_instr4。regexp_replace看函数名称大概就能猜到有什么用了。reg...
  • heicm
  • heicm
  • 2011年04月20日 14:46
  • 1213

Oracle中的INSTR,NVL和SUBSTR函数的用法代码实例

这篇文章主要介绍了Oracle中的INSTR,NVL和SUBSTR函数的用法详解,需要的朋友可以参考下Oracle中INSTR的用法:INSTR方法的格式为INSTR(源字符串, 要查找的字符串, 从...
  • xz_src
  • xz_src
  • 2017年07月28日 19:22
  • 160

Oracle常用函数instr()substr()decode()

在Oracle中  可以使用instr()函数对某个字符串进行判断,判断其是否含有指定的字符。  在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。  语法:  instr(sourc...

oracle函数之instr()和substr()实现列拆分

1、INSTR()函数         在Oracle中可以使用instr()函数对某个字符串进行判断,判断其是否含有指定的字符。 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。  ...

oracle的常用函数 instr() 和substr()函数

在Oracle中  可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。  在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。  语法:  instr(source...

【Oracle 】截取字符函数:SUBSTR()与检索字符位置函数:INSTR()实例

【Oracle 】截取字符函数:SUBSTR()与检索字符位置函数:INSTR()实例
  • haoyutc
  • haoyutc
  • 2017年04月07日 16:48
  • 387

Oracle模糊查询之(3.2从使用函数和sql语法角度来提高模糊查询效率 二)ORACLE中Like与Instr模糊查询性能大比拼

ORACLE中Like与Instr模糊查询性能大比拼 ORACLE中Like与Instr模糊查询性能大比拼     instr(title,'手册')>0  相当于  title like '%手册...
  • haiross
  • haiross
  • 2013年10月23日 16:50
  • 4460

Oracle substr()与substrb()

一直以来都是用substr()来截取字符串的一部分,虽然知道有substrb(),也知道substrb()是以byte(字节)来计算长度,可没用过,也不太明白什么地方需要用到它们,今天刚好测试了一下这...

regexp_like、regexp_substr、regexp_instr、regexp_replace

Oracle使用正则表达式离不开这4个函数: 1。regexp_like 2。regexp_substr 3。regexp_instr 4。regexp_replace ...

【sql】oracle 数据库instr函数的用法详解

instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')   在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开...
  • yjqyyjw
  • yjqyyjw
  • 2015年07月29日 17:57
  • 404
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle substr,substrb ,instr,instrb函数的用法以及like的优化
举报原因:
原因补充:

(最多只允许输入30个字)