sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2005:charindex från slutet

Vad behöver du göra med det?? Behöver du ta tag i tecknen efter den senaste förekomsten av en given avgränsare?

Om så är fallet:vänd på strängen och sök med den vanliga 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 tillbaka "some.file" - tecknen upp till den sista "." i det ursprungliga filnamnet.

Det finns ingen "LASTCHARINDEX" eller något liknande i SQL Server direkt. Det du kan tänka dig att göra i SQL Server 2005 och senare är ett utmärkt .NET-tilläggsbibliotek och distribuera det som en sammansättning i SQL Server - T-SQL är inte särskilt stark med strängmanipulation, medan .NET verkligen är det.



  1. Max för summafråga

  2. Det gick inte att ladda DLL "OraOps10.dll"

  3. Dödläge på SELECT/UPDATE

  4. SQL Server 2000 - Länkad server