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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |