Aşağıdaki gibi dizeleri içeren bir sütunlu bir tablo var.değişken uzunluğunun alt dizesi
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
ipi sonuna kadar _
ikinci olay gelen alt dizeyi almak gerekir ve gördüğünüz gibi alt dize sabit uzunlukta değildir. İlk kısım her zaman değişmez, değişebilir. Şu an için bunu başarmak için aşağıdaki kodu kullanıyorum.
SELECT SUBSTRING([String],CHARINDEX('_',[String],(CHARINDEX('_',[String])+1))+1,100)
FROM [Table]
Gördüğünüz gibi, değişken uzunlukla ilgilenecek uzunluk olarak keyfi büyük bir değer alıyorum. Bunu yapmanın daha iyi bir yolu var mı?
Her zaman tam olarak 2 alt çizgi olacak mı? –
İlk kısım daima RTSPP_LZ_ ya da başka değerlere sahip olabilir mi? –
@AaronBertrand Şu an itibariyle 2'den fazla altçizgi olan bir vaka ile karşılaşmadım. Gelecekte böyle bir durumda dizenin sonuna kadar son alt çizgi ortaya çıkabilir. çizgi ninci oluşumu olacaktır işleyebilir bir daha genel bir çözüm büyük ölçüde len söz için bunlar RTSPP_BTE_CC1 gibi RTSPP_BTE_PUN1 RTSPP_BTE_PUN2 – Ram