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 ;