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

SQL Server 2005:charindex comenzando desde el final

¿Qué necesitas hacer con eso? ¿Necesita capturar los caracteres después de la última aparición de un delimitador dado?

Si es así:invierta la cadena y busque usando el CHARINDEX normal:

declare @test varchar(100)
set @test = 'some.file.name'

declare @reversed varchar(100)
set @reversed = REVERSE(@test)

select 
    REVERSE(SUBSTRING(@reversed, CHARINDEX('.', @reversed)+1, 100))

Obtendrá "algún.archivo":los caracteres hasta el último "." en el nombre del archivo original.

No hay "LASTCHARINDEX" ni nada por el estilo en SQL Server directamente. Lo que podría considerar hacer en SQL Server 2005 y versiones posteriores es una excelente biblioteca de extensión .NET e implementarla como un ensamblaje en SQL Server:T-SQL no es muy fuerte con la manipulación de cadenas, mientras que .NET realmente lo es.