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

SQL Server 2005:charindex starter fra slutningen

Hvad skal du med det?? Skal du have fat i tegnene efter den sidste forekomst af en given afgrænsning?

Hvis det er tilfældet:vend strengen om og søg med den 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))

Du får "some.file" tilbage - tegnene op til den sidste "." i det originale filnavn.

Der er ingen "LASTCHARINDEX" eller noget lignende i SQL Server direkte. Hvad du kunne overveje at gøre i SQL Server 2005 og nyere er et fantastisk .NET-udvidelsesbibliotek og implementere det som en samling i SQL Server - T-SQL er ikke særlig stærk med strengmanipulation, hvorimod .NET i virkeligheden er det.



  1. Laravel MySQL hvordan man bestiller resultater i samme rækkefølge som i whereIn-klausulen

  2. Migrering af en Oracle-database til MySQL på AWS, del 2

  3. Opdatering af rækker i jOOQ med joins

  4. hive.HiveImport:FAILED:SemanticException [Fejl 10072]:Databasen eksisterer ikke: