您的位置:首页 > 数据库 > Oracle

oracle的常用函数

2016-03-14 08:58 453 查看
1、substr(字符串,截取开始位置,截取长度) //返回截取的字【从1开始计数】

测试:

select substr('Hello World',-3,3) value from dual;

输出为 'rld' 负数(-i)表示截取的开始位置为字符串右端向左数第i个字符

select substr('Hello World',1) value from dual;

输出为 'Hello World'    即从开始截到末尾

2、instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')【从1开始计数】

说明:instr(sourceString,destString,start,appearPosition) 

其中sourceString代表源字符串; 
destString代表要从源字符串中查找的子串; 
start代表查找的开始位置,这个参数可选的,默认为1; 
appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选的, 默认为1 
如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。 
返回值为:查找到的字符串的位置。 (返回值为0,则源字符串中没有制定的目标字符串字符)

测试:

SQL> select instr('abcdefgh','de') position from dual; 
POSITION 
---------- 
   4 
从1开始算 d排第四所以返回4 
SQL>select instr('abcdefghbc','bc',3) position from dual; 
POSITION 
---------- 
  9 
从第3个字符开始算起 第3个字符是c,所以从3开始以后的字符串找查找bc,返回9 
--------------------------- 
从第1个字符开始,查找第2次出现子串的位置 
SQL> select instr('qinyinglianqin','qin', 1, 2) position from dual; 
POSITION 
---------- 
  12 

3、replace('将要更改的字符串','被替换掉的字符串','替换字符串')//返回替换之后的字符串

测试:

select  replace ('111222333444','222','888') from dual;

输出为 '111888333444'

4、区别:length求得是字符长度,lengthb求得是字节长度。

----------------------------------------------------------------------------------------------------

SQL> select sysdate from dual;
SYSDATE
--------------
26-9月 -05
SQL> select length(sysdate) from dual;
LENGTH(SYSDATE)
---------------
              9
SQL> select lengthb(sysdate) from dual;
LENGTHB(SYSDATE)
----------------
              10
length返回的是字符数
lengthb返回的是字节数
汉字“月”在length时,返回的时1
而在lengthb时返回的时2

5、NVL函数

NVL(expr1,expr2)

含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

6、sign(n)

取数字n的符号,大于0返回1,小于0返回-1,等于0返回0

示例:

一、select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;

  SIGN(100) SIGN(-100) SIGN(0)

  ———- ———- ———-

  1         -1       0

二、a=10,b=20 

  则sign(a-b)返回-1

7、······················
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: