Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server 2005:charindex começando do final


O que você precisa fazer com isso?? Você precisa pegar os caracteres após a última ocorrência de um determinado delimitador?

Se sim:inverta a string e pesquise usando o 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))

Você receberá de volta "some.file" - os caracteres até o último "." no nome do arquivo original.

Não há "LASTCHARINDEX" ou algo parecido no SQL Server diretamente. O que você pode considerar fazer no SQL Server 2005 e superior é uma ótima biblioteca de extensão .NET e implantá-la como um assembly no SQL Server - T-SQL não é muito forte com manipulação de string, enquanto .NET realmente é.