Sql 中的 left 函式、right 函式

linuxMr發表於2018-03-06

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 ;

相關文章