当前位置: 代码迷 >> Oracle管理 >> oracle string从0还是1开始解决办法
  详细解决方案

oracle string从0还是1开始解决办法

热度:85   发布时间:2016-04-24 05:50:46.0
oracle string从0还是1开始
SQL code
select length('sdf')from dual  --3SELECT substr('sdf',0,1) FROM dual --s  //从第0位开始,取1个字符,就 取sSELECT substr('sdf',1,1) FROM dual --s  //从第1位开始,取1个字符,还是s  ??这是为什么

oracle里计算字符串是从第1 位开始还是从第0位也可以


------解决方案--------------------
当然是从1开始.
------解决方案--------------------
从1开始,自己测一下就行了:
SQL code
SQL> select substr('abcdef', 1, 2) from dual;SU--ab
------解决方案--------------------
1
------解决方案--------------------
引用楼主 fuyou001 的帖子:
SQL code

select length('sdf')from dual --3
SELECT substr('sdf',0,1) FROM dual --s //从第0位开始,取1个字符,就 取s
SELECT substr('sdf',1,1) FROM dual --s //从第1位开始,取1个字符,还是s ??这是为什么





oracle里计算字符串是从第1 位开始还是从第0位也可以

------解决方案--------------------
呵呵,其实从负数位开始取也可以;
可以做如下验证:
SQL> select substr('abcdefgkopi',1,3) from dual;

SUB
---
abc

SQL> select substr('abcdefgkopi',0,3) from dual;

SUB
---
abc

SQL> select substr('abcdefgkopi',-3,2) from dual;

SU
--
op

SQL> select substr('abcdefgkopi',-3,5) from dual;

SUB
---
opi
  相关解决方案