substring, nach dem letzten vorkommen des Zeichens?

Ich brauche Hilfe bei diesem problem:
Ich habe eine Spalte mit dem Namen phone_number und ich wollte die Abfrage dieser Spalte zu bekommen, die die Zeichenfolge rechts neben dem letzten vorkommen von '.' für alle Arten von Telefonnummern in einem einzigen sql-Abfrage.

Beispiel #:

515.123.1277

011.44.1345.629268

Ich brauche, um 1277 und 629268 bzw.

Habe ich diese so weit:
select phone_number,
Fall, wenn die Länge(phone_number) <= 12
dann
substr(phone_number,-4)
sonst
substr (phone_number, -6) Ende
von Mitarbeitern;

Dies funktioniert für dieses Beispiel, aber ich will es für alle Arten von # Formate.

Wäre toll, einige-Eingang.

Dank

  • Sie gekennzeichnet haben diese für Oracle, SQL Server und MySQL, von denen jeder einen unterschiedlichen Satz von Funktionen zur Manipulation von strings. Die Datenbank, die Sie tatsächlich nutzen? Oder sind Sie auf der Suche nach drei völlig verschiedene Antworten? Von einer Normalisierung Standpunkt, die Tatsache, dass Sie möchten, um eine Komponente aus einem längeren string lässt mich vermuten, eher stark, dass Sie gemacht haben eine Normalisierung Fehler und dass die Spalte, die Sie versuchen zu analysieren, ist nicht atomar.
  • Hallo justin, ich bin mit der oracle-Datenbank 11g. Ich bearbeitet die tags entsprechend. Ich bin mit sql plus für dieses problem.
InformationsquelleAutor John Hay | 2015-03-09
Schreibe einen Kommentar