加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 可变长度的子字符串

发布时间:2020-12-12 06:51:21 所属栏目:MsSql教程 来源:网络整理
导读:我有一个包含列的表,其中包含如下所示的字符串. RTSPP_LZ_AENRTSPP_LZ_CPSRTSPP_LZ_HOUSTONRTSPP_LZ_LCRARTSPP_LZ_NORTHRTSPP_LZ_RAYBNRTSPP_LZ_SOUTHRTSPP_LZ_WESTRTSPP_BTE_CC1 RTSPP_BTE_PUN1 RTSPP_BTE_PUN2 我需要从第二次出现的_到字符串结尾获取子字符
我有一个包含列的表,其中包含如下所示的字符串.
RTSPP_LZ_AEN
RTSPP_LZ_CPS
RTSPP_LZ_HOUSTON
RTSPP_LZ_LCRA
RTSPP_LZ_NORTH
RTSPP_LZ_RAYBN
RTSPP_LZ_SOUTH
RTSPP_LZ_WEST
RTSPP_BTE_CC1 
RTSPP_BTE_PUN1 
RTSPP_BTE_PUN2

我需要从第二次出现的_到字符串结尾获取子字符串,因为你可以看到子字符串不是固定长度.第一部分并不总是固定它可以改变.截至目前,我正在使用以下代码来实现它.

SELECT SUBSTRING([String],CHARINDEX('_',[String],(CHARINDEX('_',[String])+1))+1,100)
FROM [Table]

正如你所看到的,我将任意大的值作为处理可变长度的长度.有没有更好的方法呢?

解决方法

您可以将CHARINDEX与 REVERSE函数结合使用来查找_的最后一次出现,并且可以使用 RIGHT从字符串末尾获取指定数量的字符.
SELECT RIGHT([String],REVERSE([String]),0)-1)

SQLFiddle DEMO

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读