Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server 2005:charindex започвайки от края

Какво трябва да направите с него?? Трябва ли да вземете знаците след последното появяване на даден разделител?

Ако е така:обърнете низа и търсете, като използвате нормалния 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))

Ще получите обратно "some.file" - знаците до последния "." в името на оригиналния файл.

Няма "LASTCHARINDEX" или нещо подобно в SQL Server директно. Това, което бихте могли да обмислите да направите в SQL Server 2005 и по-нови версии, е чудесна библиотека за разширения на .NET и да я внедрите като сборка в SQL Server - T-SQL не е много силен при манипулиране на низове, докато .NET наистина е.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. множество транзакции в рамките на определен период от време, ограничен от период от време

  2. създаване на тригери за After Insert, After Update и After Delete в SQL

  3. Подреждане на родителските редове по низходяща дата с дъщерни редове, подредени независимо под всеки

  4. Sql сървър:Как да използвате агрегатна функция като MAX в клауза WHERE

  5. Агрегатът на SQL Query може да не се появи в клаузата WHERE