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

Find indeks over sidste forekomst af en understreng ved hjælp af T-SQL

ligetil måde? Nej, men jeg har brugt det omvendte. Bogstaveligt talt.

I tidligere rutiner brugte jeg funktionen REVERSE() for at finde den sidste forekomst af en given streng, efterfulgt CHARINDEX, efterfulgt igen af ​​REVERSE for at gendanne den oprindelige rækkefølge. For eksempel:

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

viser, hvordan man udtrækker de faktiske databasefilnavne fra deres "fysiske navne", uanset hvor dybt indlejret i undermapper. Dette søger kun efter ét tegn (omvendt skråstreg), men du kan bygge videre på dette for længere søgestrenge.

Den eneste ulempe er, jeg ved ikke, hvor godt dette vil fungere på TEXT-datatyper. Jeg har været på SQL 2005 i et par år nu, og jeg er ikke længere fortrolig med at arbejde med TEKST -- men jeg synes at huske, at du kunne bruge VENSTRE og HØJRE på det?

Philip



  1. Sådan ændres gendannelsesmodellen for en SQL Server-database ved hjælp af T-SQL

  2. Sådan ændres baggrundsfarven for en formular i Access 2016

  3. Opret en SSH-tunnel til MySQL-fjernadgang

  4. Kan jeg bruge en PDO-forberedt sætning til at binde en identifikator (et tabel- eller feltnavn) eller et syntaksnøgleord?