![3c024cf05096267b5f1c8660d84b6cae.png](https://i-blog.csdnimg.cn/blog_migrate/c48cbdc4c3bf6ed9698e34261d1c1471.jpeg)
在工作中,不可避免要对文本类的字段进行处理和分析,而对于不规则的文本字段处理是要让人疯的节奏。
![391052f5730352205babc1da09fffca1.gif](https://i-blog.csdnimg.cn/blog_migrate/cfece43d096d4b9f931f6c3297698adb.gif)
今天来给大家分享下SQL语句中的文本处理函数,常用的函数及功能如下:
Left()函数:返回string字符串左边n个字符
Right()函数:返回string字符串右边n个字符
Lower()函数:大写字符转化成小写的函数
Upper()函数:小写字符转化成大写的函数
Len()/Length()函数:返回文本字段中值的长度
Substr()/Substring()函数:截取字符串中的一部分字符
Charindex()函数:返回需要查询的字符串的位置
LTRIM()函数:删除数据中左边的空格
RTRIM()函数:删除数据中右边的空格
TRIM()函数:删除数据中的空格
REPLACE()函数:替换文本中特定的字符串
文本处理1:Left()&Right()函数
实现功能:使用Left()和Right()函数截取需要的文本。
适用场景:文本长度相同且格式一致的字段。
适用数据库:Sql Server/My Sql/Oracle。
例如我们需要分析每天购买不同产品类型的数量,但数据库的order表没有直接存出生年月这个字段,可通过Left()和Right()函数截取出生年年月这个字段(下方案例中的身份证信息是随机生成的)。
![e7af3a2bada66ac72064704e1f603b3e.png](https://i-blog.csdnimg.cn/blog_migrate/f8f87204b8e45b205f5587a5d750767d.jpeg)
分析:身份证总共有18位,其中第七位得到第12位是出生年月。
首先取身份证的前12位,即Left(id_no,12),然后再从右取6位,就得到出生年月了,对应的代码是Right(Left(id_no,12),6)。
![21b9ad756e1aa4b9674dbbd9f6e28d81.png](https://i-blog.csdnimg.cn/blog_migrate/25b227f6c808b74b03d27a5f68311068.jpeg)
代码如下:
select order_id,name,created_time,number,id_no,message,
right(left(id_no,12),6) 出生年月 #使用Left和Right函数截取字段
from order
输出结果:
![168da18c2a8124b656675533f43bf2e3.png](https://i-blog.csdnimg.cn/blog_migrate/82d45fd3a50778197b417e024f6f97b2.png)
文本处理2:Upper()&Lower()函数
实现功能:可以使用Upper()或Lower()函数统一大小写。
适用场景:需要将字母类型统一大写或小写时&#x