SQL中常用的字元串LEFT函數和RIGHT函數詳解!
- 2022 年 5 月 21 日
- 筆記
- SQL, SQL Server, SQL SERVER菜鳥分享, 資料庫
今天繼續整理日常可能經常遇到的一些處理字元串的函數,記得點贊收藏!以備不時之需!看到最後有驚喜!
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,獲取學習資料。