我有一個包含如下字符串的列的表。可變長度的子串
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]
正如你可以看到我正在採取任意大的值作爲長度來照顧變長。有沒有更好的方法來做到這一點?
總是會有2個下劃線嗎? –
第一部分始終是RTSPP_LZ_還是可能有其他值? –
@AaronBertrand截至目前我還沒遇到超過2個下劃線的情況。將來可能會出現這種情況,最後一個下劃線直到字符串結尾。它可以處理下劃線的第n次出現將是一個更通用的解決方案不勝感激 – Ram