当前位置:网站首页>SQL如何从字符串截取指定字符(LEFT、MID、RIGHT三大函数)
SQL如何从字符串截取指定字符(LEFT、MID、RIGHT三大函数)
2022-08-04 05:36:00 【m0_67402026】
目录
1.LEFT函数
(1)语法:left(text,len)即left(字符串文本,长度)
查询语句
select [column(s),] left(text,len)
[from table]
参数说明:
text:字符串,可直接引用字符串,也可为字段;
len:截取字符串的长度,为正整数,若为0或负数返回为空值。
说明:查询语句中用“[]”括起来的表示可选。若和其它字段一起查询时需要输入from语句指定目标表,若text为字段时也需要输入from语句指定目标表,若只是用left获取指定某字符串截取时可直接省略from语句,但是这种用法一般只是在调试而不常用于实际当中。
(2)用法:截取左边指定长度字符。
(3)实例
例1:从“hello world”截取“hello”。
select left('hello world',5)
现有一张学生表student,学号id,姓名name,性别sex,籍贯native_place,民族nation,出生日期born,年龄age。如下表所示。
student
ID
name
sex
native_place
nation
born
age
1001
张三
男
广东省
汉
2000/3/16
22
1002
陈一
女
广东
壮
1998/3/15
24
1003
王五
男
西藏
藏
2002/1/6
20
1004
陈红
女
广东省
黎
2001/1/17
21
1005
李四
男
东北省
汉
1999/3/16
23
1006
-
女
广东省
黎
1998/5/6
24
1008
陈小小
女
广东
壮
1997/5/9
25
例2:将籍贯中省字去掉,截取前两个字。同时获取学生学号、姓名、性别和年龄。
select ID,name,sex,left(native_place,2),age
from student
2.MID函数
(1)语法和用法:有两种形式
#①两个参数
mid(text,start) #从指定字符串的某序数开始获取字符
#②三个参数
mid(text,start,len) #从指定字符串的某个位置开始获取指定长度的字符
参数说明:
text:字符串,可直接引用字符串,也可为字段;
start:开始截取的字符串位置,可为正负整数。
len:截取字符串的长度,为正整数,若为0或负数返回为空值。
说明:MID函数与SUBSTRING()是同义词,用法相同。
(2)实例
例:从“hello world”中截取“world”字符串。
当start为正数时,则开始字符“w”位置为7,注意的是“hello”和“world”之间的空字符是算一个字符。
#start为正数
#两个两个参数
select mid('hello world',7) ?
或
select mid('hello world'from 7)
#三个参数
select mid('hello world',7,5)
或
select mid('hello world'from 7 for 5)
3.RIGHT函数
(1)语法:right(text,len)即right(字符串文本,长度)
查询语句
select [column(s),] right(text,len)
[from table]
参数说明:
text:字符串,可直接引用字符串,也可为字段;
len:截取字符串的长度,为正整数,若为0或负数返回为空值。
说明:查询语句中用“[]”括起来的表示可选。若和其它字段一起查询时需要输入from语句指定目标表,若text为字段时也需要输入from语句指定目标表,若只是用left获取指定某字符串截取时可直接省略from语句,但是这种用法一般只是在调试而不常用于实际当中。
(2)用法:截取右边指定长度字符。
(3)实例
例1:从“hello world”截取“world”。
select right('hello world',5)
SQL的LEFT、MID、RIGHT三大函数用法与EXCEL的LEFT、MID、RIGHT三大函数用法非常相似,可参考:excel如何从字符串中截取指定字符(LEFT、RIGHR、MID三大函数)_的博客-CSDN博客_excel截取字符串中的一部分
SQL的substring函数可参考:SQL的substring函数及其用法实例——MYSQL另一种截取目标字符的函数_的博客-CSDN博客
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
数据库知识:SQLServer创建非sa用户笔记
matlab让我的旧手机起死回生
华硕飞行堡垒系列无线网经常显示“无法连接网络” || 一打开游戏就断网
JVM工具之 JPS
2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
DropBlock: 卷积层的正则化方法及复现代码
nacos 返回 403 unknown user 太他么坑了 源码解析
Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same
如何用matlab做高精度计算?【第三辑】(完)
CMDB 腾讯云部分实现
随机推荐
Visualization and Animation Technology (3D Visualization)
指定区域内随机填充圆之matlab实现
事件链原理,事件代理,页面的渲染流程,防抖和节流,懒加载和预加载
av_read_frame 阻塞,基于回调的解决办法
代码小变化带来的大不同
matlab让我的旧手机起死回生
用手机也能轻松玩转MATLAB编程
ResNet详解:ResNet到底在解决什么问题?
数组的一些方法
如何用matlab做高精度计算?【第一辑】
为什么不使用VS管理QT项目
无监督特征对齐的迁移学习理论框架
Hardware Knowledge: Introduction to RTMP and RTSP Traditional Streaming Protocols
对象的扩展补充
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
CMDB 阿里云部分实现
Database Skills: Organize SQL Server's Very Practical Scripts
idea使用@Autowired注解爆红原因及解决方法
Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same
EfficientNet解读:神经网络的复合缩放方法(基于tf-Kersa复现代码)