Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Znajdź indeks ostatniego wystąpienia podciągu za pomocą T-SQL

Prosty sposób? Nie, ale użyłem odwrotnej strony. Dosłownie.

W poprzednich procedurach, aby znaleźć ostatnie wystąpienie danego ciągu, użyłem funkcji REVERSE(), a następnie CHARINDEX, a następnie REVERSE, aby przywrócić pierwotną kolejność. Na przykład:

SELECT
   mf.name
  ,mf.physical_name
  ,reverse(left(reverse(physical_name), charindex('\', reverse(physical_name)) -1))
 from sys.master_files mf

pokazuje, jak wyodrębnić rzeczywiste nazwy plików bazy danych z ich „nazw fizycznych”, bez względu na to, jak głęboko są zagnieżdżone w podfolderach. Wyszukuje tylko jeden znak (odwrotny ukośnik), ale można na nim bazować dla dłuższych ciągów wyszukiwania.

Jedynym minusem jest to, że nie wiem, jak dobrze będzie to działać na typach danych TEKST. Pracuję na SQL 2005 od kilku lat i nie jestem już zaznajomiony z pracą z TEXT-em -- ale przypominam sobie, że można na nim używać LEFT i RIGHT?

Filip



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak odjąć 30 dni od bieżącej daty za pomocą SQL Server

  2. Wyłącz konto SA w SQL Server (przykład T-SQL)

  3. SQL Server (TSQL) - Czy możliwe jest równoległe wykonywanie instrukcji EXEC?

  4. Pierwsze spojrzenie na nowy estymator kardynalnych serwerów SQL Server

  5. Nie można połączyć się z serwerem — błąd związany z siecią lub specyficzny dla instancji