sql >> Base de Datos >  >> RDS >> Sqlserver

Encuentre el índice de la última aparición de una subcadena usando T-SQL

¿De manera directa? No, pero he usado al revés. Literalmente.

En rutinas anteriores, para encontrar la última ocurrencia de una cadena dada, usé la función REVERSE(), seguí CHARINDEX, seguido nuevamente por REVERSE para restaurar el orden original. Por ejemplo:

SELECT
   mf.name
  ,mf.physical_name
  ,reverse(left(reverse(physical_name), charindex('\', reverse(physical_name)) -1))
 from sys.master_files mf

muestra cómo extraer los nombres reales de los archivos de la base de datos de sus "nombres físicos", sin importar qué tan profundamente anidados en las subcarpetas. Esto busca solo un carácter (la barra invertida), pero puede desarrollar cadenas de búsqueda más largas.

El único inconveniente es que no sé qué tan bien funcionará esto en los tipos de datos de TEXTO. He estado en SQL 2005 durante algunos años y ya no estoy familiarizado con el trabajo con TEXTO, pero creo recordar que podría usar IZQUIERDA y DERECHA en él.

Felipe