oracle 函数大全 之 substr
2012-07-18 12:56
309 查看
oracle的substr函数的用法
取得字符串中指定起始位置和长度的字符串 substr( string, start_position,
[ length
] )
如:
substr('This is a test',
6,
2) would
return
'is'
substr('This is a test',
6) would
return
'is a test'
substr('TechOnTheNet',
-3,
3) would
return
'Net'
substr('TechOnTheNet',
-6,
3) would
return
'The'
select substr('Thisisatest', -4, 2) value from dual 结果是
te
select substr('emros',-3,1) value from dual 结果是
r
substr('abcde',-6) = null
substr('abcde',-5) = 'abcde'
substr('abcde',-4) = 'bcde'
substr('abcde',-3) = 'cde'
substr('abcde',-2) = 'de'
substr('abcde',-1) = 'e'
substr('abcde',-0) = 'abcde'
补充说明:
substr,substrb均为字符串截取函数,都带有三个参数,第一个参数为所要截取的字符串,第二个参数为strart(索引均从1开始),第三个参数为length。
看下面的例子:
SQL> select substr('abcdef',3,4) from dual;
----
cdef
SQL> select substrb('abcdef',3,4) from dual;
----
cdef
再看下面的例子:
SQL> select substr('今天是个好日子',3,5) from dual;
----------
是个好日子
SQL> select substrb('今天是个好日子',3,5) from dual;
-----
天是
结论是substr是按照字数来算的,而substrb()是按照字节来算的。
总结:对于字母来说,substr与substrb作用时一样的,但对于汉字来说,substr是按字数来取值,而substrb是按字节来取值,当所取长度为奇数时,则自动舍弃最后一位字节。
类似的还有,
length与lengthb 长度计算函数
select length('你好') from dual ----output:2
select lengthb('你好') from dual ----output :4
instr与instrb 字符串查找函数 instr(原字符串,查的字符串,起始位置,第几个匹配) 返回字符串位置,找不到返回0 .
select instr('日日花前长病酒','花前',1,1) from dual ----output:3
select instrb('日日花前长病酒','花前',1,1) from dual ----output:5
取得字符串中指定起始位置和长度的字符串 substr( string, start_position,
[ length
] )
如:
substr('This is a test',
6,
2) would
return
'is'
substr('This is a test',
6) would
return
'is a test'
substr('TechOnTheNet',
-3,
3) would
return
'Net'
substr('TechOnTheNet',
-6,
3) would
return
'The'
select substr('Thisisatest', -4, 2) value from dual 结果是
te
select substr('emros',-3,1) value from dual 结果是
r
substr('abcde',-6) = null
substr('abcde',-5) = 'abcde'
substr('abcde',-4) = 'bcde'
substr('abcde',-3) = 'cde'
substr('abcde',-2) = 'de'
substr('abcde',-1) = 'e'
substr('abcde',-0) = 'abcde'
补充说明:
substr,substrb均为字符串截取函数,都带有三个参数,第一个参数为所要截取的字符串,第二个参数为strart(索引均从1开始),第三个参数为length。
看下面的例子:
SQL> select substr('abcdef',3,4) from dual;
----
cdef
SQL> select substrb('abcdef',3,4) from dual;
----
cdef
再看下面的例子:
SQL> select substr('今天是个好日子',3,5) from dual;
----------
是个好日子
SQL> select substrb('今天是个好日子',3,5) from dual;
-----
天是
结论是substr是按照字数来算的,而substrb()是按照字节来算的。
总结:对于字母来说,substr与substrb作用时一样的,但对于汉字来说,substr是按字数来取值,而substrb是按字节来取值,当所取长度为奇数时,则自动舍弃最后一位字节。
类似的还有,
length与lengthb 长度计算函数
select length('你好') from dual ----output:2
select lengthb('你好') from dual ----output :4
instr与instrb 字符串查找函数 instr(原字符串,查的字符串,起始位置,第几个匹配) 返回字符串位置,找不到返回0 .
select instr('日日花前长病酒','花前',1,1) from dual ----output:3
select instrb('日日花前长病酒','花前',1,1) from dual ----output:5
相关文章推荐
- [收藏]ORACLE函数大全
- Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)
- Oracle 函数大全
- ORACLE函数大全 (zz)
- Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)
- 收集的ORACLE函数大全
- ORACLE 函数大全(转载)
- Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)
- Oracle 正则表达式函数-REGEXP_SUBSTR 使用例子
- ORACLE函数大全
- oracle一些常用的函数(substr,日期加减问题)之我见
- ORACLE函数大全 [转]
- Oracle 函数大全
- Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace
- ORACLE函数整理大全
- oracle中常用函数大全
- oracle 10g函数大全--日期型函数
- oracle pl/SQL函数大全(1)
- oracle 函数大全
- ORACLE函数大全