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