Cách thẳng thắn? Không, nhưng tôi đã sử dụng ngược lại. Theo nghĩa đen.
Trong các quy trình trước đây, để tìm lần xuất hiện cuối cùng của một chuỗi nhất định, tôi đã sử dụng hàm REVERSE (), theo sau CHARINDEX, tiếp theo là REVERSE để khôi phục lại thứ tự ban đầu. Ví dụ:
SELECT
mf.name
,mf.physical_name
,reverse(left(reverse(physical_name), charindex('\', reverse(physical_name)) -1))
from sys.master_files mf
cho biết cách trích xuất tên tệp cơ sở dữ liệu thực tế từ "tên vật lý" của chúng, bất kể được lồng sâu trong các thư mục con như thế nào. Điều này chỉ tìm kiếm một ký tự (dấu gạch chéo ngược), nhưng bạn có thể xây dựng dựa trên điều này cho các chuỗi tìm kiếm dài hơn.
Nhược điểm duy nhất là, tôi không biết điều này sẽ hoạt động tốt như thế nào trên các kiểu dữ liệu TEXT. Tôi đã sử dụng SQL 2005 được vài năm rồi và không còn thích làm việc với TEXT nữa - nhưng tôi nhớ lại rằng bạn có thể sử dụng LEFT và RIGHT trên nó?
Philip