Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server 2005:charindex a partire dalla fine

Cosa devi farci?? Hai bisogno di catturare i caratteri dopo l'ultima occorrenza di un determinato delimitatore?

In tal caso:invertire la stringa e cercare utilizzando il normale CHARINDEX:

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))

Tornerai indietro "some.file" - i caratteri fino all'ultimo "." nel nome del file originale.

Non c'è "LASTCHARINDEX" o qualcosa del genere direttamente in SQL Server. Quello che potresti considerare di fare in SQL Server 2005 e versioni successive è un'ottima libreria di estensione .NET e distribuirla come assembly in SQL Server:T-SQL non è molto efficace con la manipolazione delle stringhe, mentre .NET lo è davvero.