Прямой путь? Нет, но я использовал обратное. В буквальном смысле.
В предыдущих подпрограммах, чтобы найти последнее вхождение данной строки, я использовал функцию REVERSE (), затем CHARINDEX, затем снова REVERSE для восстановления исходного порядка. Например:
SELECT
mf.name
,mf.physical_name
,reverse(left(reverse(physical_name), charindex('\', reverse(physical_name)) -1))
from sys.master_files mf
показывает, как извлечь фактические имена файлов базы данных из их «физических имен», независимо от того, насколько глубоко они вложены в подпапки. При этом выполняется поиск только одного символа (обратная косая черта), но вы можете использовать его для более длинных строк поиска.
Единственным недостатком является то, что я не знаю, насколько хорошо это будет работать с типами данных TEXT. Я работаю над SQL 2005 уже несколько лет и больше не знаком с работой с TEXT - но, похоже, я помню, что вы могли использовать LEFT и RIGHT?
Philip