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;
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值