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,获取学习资料。