Quantcast
Channel: database-blog
Viewing all articles
Browse latest Browse all 10

Kurztipps: Sybase ASE Transact-SQL – Letzten Teil eines Strings ermitteln

$
0
0

Neulich kam ich in die Verlegenheit, mich mit den Stringfunktionen aus Sybase T-SQL auseinanderzusetzen. Ziel war es, den letzten Teil eines Strings zu ermitteln, ohne eine zusätzliche Stored Procedure für die String-Zerlegung zu implementieren.

Ausgangssituation:
Eine Tabelle, die Einträge für verschiedene Logfile-Pfade enthält. Benötigt wird aber nur der Dateiname. Als weitere Schwierigkeit kam hinzu, dass die Anzahl der Trennzeichen (in diesem Fall das ‘/’) unterschiedlich war.

1> select * from tbl_logfiles
2> go
   logfile_id  logfile       
   --------------------------------- ---------------------------------------------------------------------------------------------------
             1 /var/log/httpd/httpd-error.log
             2 /var/log/sybase/trace/trace.log
	     ... ...

Nach kurzem Nachdenken kam mir folgende Idee:

Lösung:

1> select reverse(substring(reverse(logfile),1, 
   (charindex('/',reverse(logfile))-1))) as filename
   from tbl_logfiles
2> go
   filename 
   -------------------------------------------------------
   httpd-error.log
   trace.log
   ...

Falls es weitere Lösungsvorschläge gibt, dann postet diese bitte unbedingt als Kommentar… :-)


Viewing all articles
Browse latest Browse all 10