Sql 字符串截取
注意 不同数据库内置函数名称或有差异,可参考
1.从左至右截取
①使用left()函数可以从左至右对字符串进行截取
语法:LEFT(str,length)
str是要进行截取的字符串,length是要截取的长度(数字), left('abcdefg',3) 即表示从左开始截取包含第一位到第三位字符串的所有内容
例如:执行 select left('abcdefg',3) 返回结果为 abc

②使用substr()函数进行截取
语法:SUBSTR(str,startPosition,returnLength)
str是要进行截取的字符串,startPosition(数字)是给定开始截取的位置,returnLength(数字)是指定要截取的长度;
若只给定substr一个数字参数如 substr(‘12345’,3),则默认该数字参数为开始截取的位置并返回其后所有字符,而LEFT函数则是只从左开始截取到指定的位置。
例如:

2.从右至左截取
使用right()函数可以从右至左对字符串进行截取
语法:RIGHT(str,length)
str是要进行截取的字符串,length是要截取的长度(数字), right('abcdefg',3) 即表示从右开始截取到第三位字符串的所有内容
例如:执行 select right('abcdefg',3) 返回结果为 efg

3.反转字符串截取后再反转还原
利用REVERSE()函数可以将字符串内容进行反转
例如 执行 select REVERSE('cba') 结果为 abc;一些情况可以使用这个函数反转截取后再反转。
4.截取指定指定字符或字符串之间的内容
mysql:
在mysql中可使用SUBSTRING_INDEX()函数来截取指定字符或字符串的内容;
语法:SUBSTRING_INDEX(str,delim,count)
str是要进行截取的字符串;delim是指定的分割字符或字符串;count是delim在对应str内容中出现的次数,count为正数表示从左至右截取n次之前的所有内容,为负数表示从右至左截取n次之前的内容;
例如:

因此,针对要截取指定字符之间的内容,可以先使用SUBSTRING_INDEX函数 分两次 截取指定字符左边或右边的所有字符
例如,截取 '_432_231_abc_2_e2' 中的 abc:
第一步:根据分隔符 _ 从左至右截取第四个分隔符 _ 前包含 abc的所有内容:
SELECT SUBSTRING_INDEX('_432_231_abc_2_e2','_',4);

第二步:再使用SUBSTRING_INDEX函数根据分隔符 _ 从右至左截取 第一步获取的内容中 第一个分隔符 _ 前的所有内容
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('_432_231_abc_2_e2','_',4),'_',-1);

Sql 字符串截取的更多相关文章
- sql字符串处理
sql字符串截取 substring(ParamName,start,length) start开始位置,length结束位置 DECLARE @Tel NVARCHAR(20) SET @Tel=' ...
- SQL Server截取字符串
--SQL Server截取字符串 , Len('hello@163.com')) ,charindex('.','hello@163.com'))
- 在论坛中出现的比较难的sql问题:1(字符串分拆+行转列问题 SQL遍历截取字符串)
原文:在论坛中出现的比较难的sql问题:1(字符串分拆+行转列问题 SQL遍历截取字符串) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方 ...
- 解决存储过程中拼接的SQL字符串超长导致sql语句被截取的问题
今天遇到了一个奇葩的问题:存储过程中的sql字符串拼接的太长,超出了分页存储过程执行sql参数的nvarchar(4000)的长度. 没办法,只能修改自己的存储过程,因为分页存储过程是不能动的. 开始 ...
- Linux 的shell 字符串截取很有用。有八种方法。
一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1 # 号截取,删除左边字符,保留右边字符. echo ${va ...
- MySQL 字符串截取相关函数
MySQL 字符串截取相关函数 在工作中,可能需要将某些字段按某个分割符组成一个字符串作为字段值存取到数据库表中,比如某个任务对应三个结果,分别存储在不同的数据表中,这时可以将这三个不同表的主键按照约 ...
- Mysql字符串截取函数SUBSTRING的用法说明
感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取字符串 left(str, length) 说明:le ...
- SQL字符串操作汇总
SQL字符串操作汇总 --将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入此处 select stuff('hello,world!',4,4,'****') --返回值hel*** ...
- MySQL 字符串截取SUBSTRING()函数
MySQL 字符串截取相关函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例: select left(content,200) as ab ...
- MySQL 字符串截取函数
MySQL 字符串截取函数:left(), right(), substring(), substring_index().还有 mid(), substr().其中,mid(), substr() ...
随机推荐
- 🤺Universal and Transferable Adversarial Attacks on😊Aligned Language Models
- 由于OpenCV的#include <opencv2/opencv.hpp>文件没有放在所有的头文件之前所引起的编译时提示很多错误,如:filesystem.hpp(11,12): error C2144: 语法错误:“bool”的前面应有“;”error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int等
现象描述: 由于OpenCV的#include <opencv2/opencv.hpp>文件没有放在所有的其他OpenCV头文件之前所引起的编译时提示很多错误,如:filesystem.h ...
- SpringBoot 集成Swagger后提通过http://localhost:8001/swagger-ui.html#/访问得不到页面
SpringBoot 集成Swagger后提通过http://localhost:8001/swagger-ui.html#/访问得不到页面: spring boot 集成 swagger2步骤: ...
- 巧用VTable打造炫酷金字塔图表
在数据分析和可视化领域,表格是展示数据直观.有效的方式之一.今天,就让我们来探索如何利用VTable这个强大的表格组件,制作出既美观又富有信息量的金字塔图表,以及深入了解VTable中各种单元格类型的 ...
- 【java提高】---细则(4)
java提高(16)---java注解 注解含义注解是JDK1.5之后才有的新特性,它相当于一种标记,在程序中加入注解就等于为程序打上某种标记,之后又通过类的反射机制来解析注解. 一.JDK自带注解 ...
- Superset实现动态SQL查询
使用自定义参数方式实现 superset 实现SQL动态查询 1.启用参数:config.py 设置"ENABLE_TEMPLATE_PROCESSING": True 2.当前s ...
- 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
写在前面 最近,DeepSeek 发布的推理大模型 DeepSeek - R1 ,可以说是AI大模型领域杀出的一匹黑马.它在国外大模型排名 Arena 上成绩惊人,基准测试位列全类别大模型第三,在风格 ...
- .NET周刊【1月第2期 2025-01-12】
国内文章 [.NET] API网关选择:YARP还是Ocelot? https://www.cnblogs.com/madtom/p/18655530 本文详细比较了YARP和Ocelot两种API网 ...
- 管理虚拟机(virsh)
[root@kvm1 qemu]# virsh --help 开启和关闭 [root@kvm1 qemu]# virsh virsh # help list virsh # list virsh # ...
- kubesphere应用系列(二)部署有状态服务redis
前言 在 Kubernetes 中,服务(Service)可以被分为有状态服务和无状态服务,个人认为的区别: 无状态服务是指不依赖于任何持久化状态的服务.它们通常是将请求处理为独立.无关的事务,并且在 ...