sql >> Databáze >  >> RDS >> Sqlserver

SQL Server 2005:charindex od konce

Co s tím potřebuješ udělat?? Potřebujete uchopit znaky po posledním výskytu daného oddělovače?

Pokud ano:obraťte řetězec a hledejte pomocí normálního 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))

Dostanete zpět "nejaký.soubor" - znaky až po poslední "." v původním názvu souboru.

Přímo na serveru SQL Server není žádný „LASTCHARINDEX“ ani nic podobného. V SQL Server 2005 a novějších byste mohli zvážit provedení skvělé knihovny rozšíření .NET a nasadit ji jako sestavení do SQL Serveru – T-SQL není příliš silný s manipulací s řetězci, zatímco .NET opravdu ano.



  1. Základní MySQL dotazy

  2. chyba -1054 neznámý sloupec e.id v klauzuli objednávky

  3. Jak zálohovat / exportovat databázi MySQL pomocí PHP

  4. Dotaz k nalezení úplného skenování tabulky v oracle