Ho una tabella con una colonna che contiene stringhe come di seguito.sottostringa di lunghezza variabile
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
ho bisogno di ottenere la sottostringa dalla seconda occorrenza del _
fino alla fine della corda e come si può vedere la sottostringa non è di lunghezza fissa. La prima parte non è sempre risolta può cambiare. A partire da ora sto usando il seguente codice per realizzarlo.
SELECT SUBSTRING([String],CHARINDEX('_',[String],(CHARINDEX('_',[String])+1))+1,100)
FROM [Table]
Come potete vedere sto prendendo un valore arbitrario di grandi dimensioni come la lunghezza di prendersi cura di lunghezza variabile. C'è un modo migliore per farlo?
Ci saranno sempre esattamente 2 trattini di sottolineatura? –
La prima parte è sempre RTSPP_LZ_ o potrebbe avere altri valori? –
@AaronBertrand A partire da ora non ho riscontrato un caso con più di 2 caratteri di sottolineatura. Potrebbe verificarsi in futuro in questo caso l'ultimo trattino di sottolineatura fino alla fine della stringa. Una soluzione più generica che può gestire il verificarsi ennesima di sottolineatura sarebbe apprezzato notevolmente – Ram