SQL中常用的字元串LEFT函數和RIGHT函數詳解!

今天繼續整理日常可能經常遇到的一些處理字元串的函數,記得點贊收藏!以備不時之需!看到最後有驚喜!

LEFT(expression, length)函數

解析:從提供的字元串的左側開始提取給定長度的字元,並返回。

  • expression可以是文字字元串,變數或列。expression的結果的數據類型可以是除TEXT或NTEXT之外的任何數據類型,它隱式轉換為VARCHAR或NVARCHAR類型,否則,請使用CAST函數顯示轉換。

  • length是一個正整數,指定將返回expression的字元數,也就是截取的長度。如果length為負,則返回錯誤。

返回類型:

  • expression為非Unicode字元數據類型時,返回varchar

  • length為Unicode字元數據類型時,返回nvarchar

實例左右可滑動查看

--實例一
--返回字元串 SQL資料庫運維 的最左邊三個字元
SELECT LEFT('SQL資料庫運維',3)
--結果:SQL
---------------------------------------------------------------------
--實例二
--如果是查找出TBICXX表中CXM列中記錄的左邊的一個字元(姓氏),
--並匯總出各個姓氏的人員數量按降序排列,可按此程式碼進行查詢
Select LEFT(CXM,1) 姓氏,COUNT(*) 數量 FROM TBICXX GROUP BY LEFT(CXM,1) ORDER BY COUNT(*) DESC;

RIGHT(expression, length)函數

解析:從提供的字元串的右側開始提取給定長度的字元,並返回。

註:其他參數設置及返回類型與LEFT(expression, length)函數一樣,可參考LEFT()相關解釋(上翻查看)

實例左右可滑動查看

--實例一
--返回字元串 SQL資料庫運維 的最左邊三個字元
SELECT RIGHT('SQL資料庫運維',5)
--結果:資料庫運維
---------------------------------------------------------------------
--實例二
--如果是查找出TBICXX表中CXM列中記錄的右邊的一個字元,
--並匯總出各個右邊的一個字元數量按降序排列,可按此程式碼進行查詢
Select RIGHT(CXM,1) 姓氏,COUNT(*) 數量 FROM YXHIS..TBICXX GROUP BY RIGHT(CXM,1) ORDER BY COUNT(*) DESC;

擴展知識:

Oracle資料庫中沒有left() 和right() 函數。如果想要使用,可自己新建兩個function即可,使用方法同上,創建方法如下:

--ORACLE資料庫內創建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;
---------------------------------------------------------------------
--ORACLE資料庫內創建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;

點擊關注「SQL資料庫運維」,後台回復關鍵字:進群,帶你進入高手如雲的技術交流群。後台回復關鍵字:SQL,獲取學習資料。