Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server 2005:charindex beginnend am Ende

Was muss man damit machen?? Müssen Sie die Zeichen nach dem letzten Vorkommen eines bestimmten Trennzeichens erfassen?

Wenn ja:Kehren Sie den String um und suchen Sie mit dem normalen 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))

Sie erhalten "some.file" zurück - die Zeichen bis zum letzten "." im ursprünglichen Dateinamen.

Es gibt kein "LASTCHARINDEX" oder ähnliches direkt in SQL Server. Was Sie in SQL Server 2005 und höher in Betracht ziehen könnten, ist eine großartige .NET-Erweiterungsbibliothek, die Sie als Assembly in SQL Server bereitstellen – T-SQL ist nicht sehr stark bei der Manipulation von Zeichenfolgen, während .NET dies wirklich ist.