Rechtlijnige manier? Nee, maar ik heb het omgekeerde gebruikt. Letterlijk.
In eerdere routines gebruikte ik de functie REVERSE() om het laatste voorkomen van een bepaalde string te vinden, gevolgd door CHARINDEX, gevolgd door REVERSE om de oorspronkelijke volgorde te herstellen. Bijvoorbeeld:
SELECT
mf.name
,mf.physical_name
,reverse(left(reverse(physical_name), charindex('\', reverse(physical_name)) -1))
from sys.master_files mf
laat zien hoe de feitelijke databasebestandsnamen uit hun "fysieke namen" kunnen worden gehaald, ongeacht hoe diep ze in submappen zijn genest. Dit zoekt wel naar slechts één teken (de backslash), maar u kunt hierop voortbouwen voor langere zoekreeksen.
Het enige nadeel is dat ik niet weet hoe goed dit zal werken op TEKST-gegevenstypen. Ik gebruik SQL 2005 nu al een paar jaar en ben niet meer vertrouwd met het werken met TEXT -- maar ik meen me te herinneren dat je LINKS en RECHTS erop kunt gebruiken?
Filip