DB2中left()函数和right()函数对应oracle中的substr()函数
DB2 LEFT、RIGHT函数
语法:LEFT(ARG,LENGTH)、RIGHT(ARG,LENGTH)
LEFT、RIGHT函数返回ARG最左边、右边的LENGTH个字符串,ARG可以是CHAR或BINARY STRING。
eg:
SELECT LEFT(NAME,2),RIGHT(NAME,2) FROM T1
ORACLE substr()函数
substr(字符串,截取开始位置,截取长度) //返回截取的字
substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串
substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符
substr('Hello World',2,4) //返回结果为 'ello'
substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
Oracle数据库中是没有left() 和right() 函数的,若想按照DB2中对应的函数去使用,自己新建两个function即可,方法如下
LEFT
CREATE OR REPLACE FUNCTION "LEFT" (str in varchar2,sublen in integer) return varchar2 is strlen integer; begin strlen := length(str); if sublen<=0 then return ''; elsif strlen<=sublen then return str; else return SUBSTR(str,0,sublen); end if; return ''; end LEFT;
RIGHT
CREATE OR REPLACE FUNCTION "RIGHT" (str in varchar2,sublen in integer) return varchar2 is strlen integer; begin strlen := length(str); if sublen<=0 then return ''; elsif strlen<=sublen then return str; else return SUBSTR(str,strlen-sublen+1,sublen); end if; return ''; end RIGHT;
使用
select left('abcdefg',3) from dual ;