Znajdź ostatnie n znaków

Żona zadała mi pytanie w związku z rozwijanym w firmie systemem pisanym w C# i opartym o SQL Server: jakimi sposobami z ciągu znaków np. „kkk/384/d3/a/332” można wyciągnąć liczby po ostatnim znaku „/”?

Do głowy przychodzą mi dwa rozwiązania:

  • wyszukać ostatnie pojawienie się znaku „/” i odpowiednio wyciąć string
  • zastosować wyrażenie regularne do znalezienia cyfr na końcu ciągu

W przypadku SQL Servera nie ma wbudowanych bibliotek do wyrażeń regularnych. Można napisać własne funkcje wykorzystujące SQLCLR (dla wersji 2005 i 2008) lub OLE (dla wersji 2000) lub skorzystać z istniejących zewnętrznych bibliotek dll (np. xp_pcre). W tym konkretnym przypadku można jednak osiągnąć zamierzony wynik żonglując standardowymi funkcjami T-SQL. Czytaj dalej