今天繼續整理日常可能經常遇到的一些處理字串的函式,記得點贊收藏!以備不時之需!看到最後有驚喜!
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,獲取學習資料。