sql – 可变长度的子字符串

前端之家收集整理的这篇文章主要介绍了sql – 可变长度的子字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含列的表,其中包含如下所示的字符串.
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

原文链接:https://www.f2er.com/mssql/84358.html

猜你在找的MsSQL相关文章