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 ;