Que devez-vous en faire ?? Avez-vous besoin de saisir les caractères après la dernière occurrence d'un délimiteur donné ?
Si c'est le cas :inversez la chaîne et recherchez à l'aide du 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))
Vous récupérerez "some.file" - les caractères jusqu'au dernier "." dans le nom de fichier d'origine.
Il n'y a pas de "LASTCHARINDEX" ou quelque chose comme ça directement dans SQL Server. Ce que vous pourriez envisager de faire dans SQL Server 2005 et versions ultérieures est une excellente bibliothèque d'extensions .NET et de la déployer en tant qu'assembly dans SQL Server - T-SQL n'est pas très puissant avec la manipulation de chaînes, alors que .NET l'est vraiment.