Mam tabelę z kolumną zawierającą ciągi jak poniżej.podciąg o zmiennej długości
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
muszę uzyskać podciąg z drugiego wystąpienia _
do końca sznurka i jak widać podciąg nie ma stałej długości. Pierwsza część nie zawsze jest naprawiona, może się zmienić. Obecnie używam następującego kodu, aby to osiągnąć.
SELECT SUBSTRING([String],CHARINDEX('_',[String],(CHARINDEX('_',[String])+1))+1,100)
FROM [Table]
Jak widzę biorę arbitralnie dużą wartość jako długość, aby zająć się zmienną długością. Czy jest lepszy sposób na zrobienie tego?
Czy zawsze będą dokładnie 2 podkreślenia? –
Czy pierwsza część zawsze RTSPP_LZ_ lub może mieć inne wartości? –
@AaronBertrand Odtąd nie spotkałem się z przypadkiem z więcej niż 2 podkreśleniami. Może się zdarzyć w przyszłości w takim przypadku w ostatnim podkreśleniu do końca łańcucha. Bardziej ogólne rozwiązanie, które może obsłużyć n-tego wystąpienia podkreślenia byłoby bardzo mile widziane – Ram