SQL 截取函数

目录

1、substring

2、left

3、right

4、substring_index


1、substring

用途:字段截取从指定开始的字符开始,截取要的数;指定开始的字符数字可以用负的,指定开始的字符从后往前(向左)数,截取要的数不能为负。

语法格式:substring(field,n,m)

中文注释:substring(字段,从第n位开始,从n开始截取m位)

用法:

sql 复制代码
#从第1位开始截取,往后(向右)截取5位
SELECT SUBSTRING('12345678', 1, 5) AS A from dual;
#输出 '12345'

#从第2位开始截取,往后(向右)截取5位
SELECT SUBSTRING('12345678', 1, 5) AS A from dual;
#输出 '23456'
sql 复制代码
#-2是从倒数第2位开始,往后(向右)截取5位,后面不够5位,有多少就截多少
SELECT SUBSTRING('12345678', -2, 5) AS A from dual;
#输出 '78'

#-4是从倒数第1位开始,往后(向右)截取3位,后面不够5位,有多少就截多少
SELECT SUBSTRING('12345678', -4, 3) AS A from dual;
#输出 '567'

2、left

用途:从字段左边开始截取向后(向右)指定数的字符。

语法格式:left(field,n)

中文注释:left(字段,从左开始截取到第n位)

用法:

sql 复制代码
#从左开始,截取2位
SELECT LEFT('12345678',2) A FROM dual
#输出'12'


#从左开始,截取4位
SELECT LEFT('12345678',4) A FROM dual
#输出'1234'

3、right

用途:从字段右边开始截取向前(向左)指定数的字符。

语法格式:left(feld,n)

中文注释:left(字段,从右边开始截取到第n位)

用法:

sql 复制代码
#从右开始,向前(向左)截取3位
SELECT right('12345678', 3) AS A from dual;
#输出'678'

#从右开始,向前(向左)截取5位
SELECT right('12345678', 5) AS A from dual;
#输出'45678'

4、substring_index

用途:从指定分隔符出现的次数,开始截取向后(向右)所有的字符;负数就向前(向左)截取所有的字符。

语法格式:substring_index(feld,str,count)

中文注释:substring_index(字段,指定分隔符,截取指定分隔符出现第count次之后的所有字符)

用法:

sql 复制代码
#从左往右数指定分隔符 . 出现1次的地方,开始截取向后(向左)所有字符
SELECT substring_index('12345678.sd111.sa.51wf','.',1) AS A from dual;
#输出'12345678'

#从左往右数指定分隔符 . 出现3次的地方,开始截取向后(向左)所有字符
SELECT substring_index('12345678.sd111.sa.51wf','.',3) AS A from dual;
#输出'12345678.sd111.sa'
sql 复制代码
#从右往左数指定分隔符 . 出现1次的地方,开始截取向后(向左)所有字符
SELECT substring_index('12345678.sd111.sa.51wf','.',-1) AS A from dual;
#输出'51wf'

#从右往左数指定分隔符 . 出现3次的地方,开始截取向后(向左)所有字符
SELECT substring_index('12345678.sd111.sa.51wf','.',-3) AS A from dual;
#输出'sd111.sa.51wf'
相关推荐
云飞云共享云桌面12 分钟前
搭建10人SolidWorks云设计环境:云飞云在非标自动化工厂的实测方案
运维·服务器·网络·数据库·自动化·电脑
A-刘晨阳15 分钟前
关键基础设施安全底座:自主可控时序大模型TimechoAI的国产化实践与深度时序分析能力
大数据·数据库·安全·时序数据库
谢慧琼15 分钟前
免费版收银系统支持多账号同时登录吗?
mysql
江畔柳前堤15 分钟前
第07章:Docker 网络模型
运维·网络·git·elasticsearch·docker·容器·架构
深盾科技_Virbox16 分钟前
Virbox Protector 从何而来:深盾科技的软件保护演进
运维·数据库·科技
是个西兰花18 分钟前
Linux:进程信号
linux·运维·服务器
云飞云共享云桌面22 分钟前
智能装备制造数字化实测:10人SolidWorks云桌面部署,云飞云方案替代传统单机工作站
运维·服务器·网络·人工智能·制造
Urbano22 分钟前
突破品类边界:数控模板机不止制衣,枕套等家居家纺自动化生产全科普
运维·自动化
CS创新实验室27 分钟前
从“业余爱好”到数字基石:Linux 发展史及带给技术人的成长启示
linux·运维·服务器
rebibabo27 分钟前
Java基础(24) | MySQL 原理与优化:事务、存储引擎、索引与锁
mysql··存储引擎·explain·视图·最左前缀·事务acid