首页 > 数据库 >Sql 字符串截取

Sql 字符串截取

时间:2023-08-03 16:00:28浏览次数:36  
标签:INDEX abc 截取 SUBSTRING str 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);

 

  分类: 数据库

标签:INDEX,abc,截取,SUBSTRING,str,Sql,字符串
From: https://www.cnblogs.com/lcword/p/17603580.html

相关文章

  • 国标GB28181平台LntonGBS(源码版)国标视频平台在连接MySQL数据库时提示“can’t connect
    LntonGBS国标视频云服务平台不仅支持无缝、完整接入内网或者公网的国标设备,还能够实现全平台、全终端输出。该平台支持将GB/T28181的设备/平台推送的PS流转成ES流,并提供RTSP、RTMP、FLV、HLS、WebRTC等多种格式视频流的分发服务,实现Web浏览器、手机浏览器、微信端、PC客户端等各终......
  • 字符串
    复健\(Day9\)字符串相关算法\(1.\)最小表示法最小表示法就是找出字符串\(s\)的循环同构串中字典序最小的那一个时间复杂度为\(O(n)\)chars[maxn];intn;intget_min(char*s){ n=strlen(s+1); for(inti=1;i<=n;i++)s[n+i]=s[i]; inti=1,j=2,k=0; while(i<=n&&j<=......
  • SQL - 字符型转数值型
    selectcast('2.123'asnumeric)--字符型转数值型,取整数部分值selectcast('2.123'asdecimal(18,4))--字符型转数值型,保留小数  ......
  • MySQL中GROUP BY和ORDER BY使用别名
    前置知识在MySQL中,GROUPBY关键字可以根据一个或多个字段对查询结果进行分组在有GROUPBY操作中,SELECT后面接的结果集字段只有两种:要么就只有GROUPBY后出现的字段,要么就是GROUPBY后出现的字段+聚合函数的组合常用的五种聚合函数:MIN()求列中最小数值,MAX()求列中......
  • 【测试】SAS 编程技巧 - PROC SQL(二)
    上一节中,我们介绍了如何使用SQL创建、删除数据集、修改数据集结构,以及如何新增、删除和更新数据集的观测,所涉及到的内容都是对数据集的增、删、改的操作,从本节开始,我们将对SQL中最常见,也最灵活的查询操作进行详细的介绍。查询语句SQL的查询操作是通过SELECT语句实现的。S......
  • sql执行顺序和别名
    sql执行顺序:from on join where group by having select distinct union order by  别名的使用:    SELECT download_typeastype,count(*)fromdownload   GROUPBY type  正常来说groupby先于select执行,是找不到type这个字段......
  • 使用正则表达式 移除 HTML 标签后得到字符串
    需求分析后台返回的数据是这样式的需要讲html标签替换high_light_text:"<spanstyle='color:red'>OPPO</span><spanstyle='color:red'>OPPO</span>白色01"使用正则表达式functionstripHTMLTags(htmlString){returnhtmlString.repl......
  • 【测试】SAS 编程技巧 - PROC SQL(一)
    SQL全称StrucuredQueryLanguage,即结构化查询语言,广泛应用于关系型数据库中。SASBase使用PROCSQL提供了对SQL的实现。PROCSQL过程可以帮助我们完成以下任务:创建数据集、视图和索引删除数据集、视图和索引修改数据集的结构更新数据集的观测从数据集或视图中获取......
  • MySQL语句判断数据库数据重复情况,新增、删除、不变。
    判断7月8月两个月数据对比情况,新增、删除(离职)、重复。 根据manager_name,gg_name,employer,department,historical_office判断出是否重复数据--●-新增或离职--●-创建临时表CREATETABLEtemp_table(SELECTid,manager_name,gg_name,employer,department......
  • MySQL在线修改varchar列的注意事项和方法
    在数据库管理中,altertable操作是修改数据库结构的关键部分。mysql从5.6版开始提供在线操作,提供了一种在不锁定表的情况下执行这些更改的便捷方法。不过,这也有一些注意事项。在本文中,将探讨在线修改varchar列的过程,深入了解在扩大此类列的大小时获得的启发。假设有以下表定义,该表......