oracle数据库内部函数之中的字符函数,其中substr()算是
运用比较多的函数,以下简单通过例子讲述它的一些运用。
substr()函数就是用来截取指定字符串中的部分字符。
----substr()字符函数:
--自定义的例子:
Substr(chr,0,m)与Substr(chr,m)的区别:
sys@PROD>select substr('ahijdfogo',0,4),
2 substr('ahijdfogo',4) from dual;
SUBS SUBSTR
---- ------
ahij jdfogo
---查看表emp中deptno=20部分的记录:
scott@PROD>select * from emp
2 where deptno = 20;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- --------- ---------- ---------- ------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7566 JONES MANAGER 7839 02-APR-81 2975 20
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7777 SUSU CLERK 7782 13-NOV-16 3000 500 20
6 rows selected.
---使用Substr(chr,n,m)字符函数按不同参数要求截取ename字段:
scott@PROD>select substr(ename,3),substr(ename,0,3)
2 from emp where deptno = 20;
SUBSTR(ENAME,3) SUBSTR(ENAME
-------------------------------- ------------
ITH SMI
NES JON
OTT SCO
AMS ADA
RD FOR
SU SUS
6 rows selected.
#可以看到,返回的两个字段的记录是不一样的。
--注意,Substr(chr,n,m)函数中,n,m两个函数里的参数,当n=0,
m=0亦或者省略都是不一样的决定,返回的结果就是不一样的。以上的
两个例子也可以看到,还有,下面的那个例子,大家可以慢慢体会。
当省略n,m中的一个参数,则默认是省略n 参数,即n=0.(如上述)
---当m=0不省略:
scott@PROD>select substr(ename,3,0) from emp where deptno = 20;
S
-
6 rows selected.
#返回6条记录,但是6条的记录都是空的,因为安要求返回就是没有字符。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31392094/viewspace-2128537/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31392094/viewspace-2128537/