Sql中的left函數、right函數


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  ; 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM