Enkelt sätt? Nej, men jag har använt det omvända. Bokstavligen.
I tidigare rutiner, för att hitta den sista förekomsten av en given sträng, använde jag REVERSE()-funktionen, följt CHARINDEX, följt igen av REVERSE för att återställa den ursprungliga ordningen. Till exempel:
SELECT
mf.name
,mf.physical_name
,reverse(left(reverse(physical_name), charindex('\', reverse(physical_name)) -1))
from sys.master_files mf
visar hur man extraherar de faktiska databasfilnamnen från deras "fysiska namn", oavsett hur djupt kapslade i undermappar. Detta söker bara efter ett tecken (omvänt snedstreck), men du kan bygga vidare på detta för längre söksträngar.
Den enda nackdelen är att jag inte vet hur bra detta kommer att fungera på TEXT-datatyper. Jag har använt SQL 2005 i några år nu och är inte längre insatt i att arbeta med TEXT -- men jag verkar minnas att du kan använda VÄNSTER och HÖGER på det?
Philip