Frage

Ich sitze in einer Datenbank, in der eine Spalte zwei Datentypen enthält ;)

Beispiel

"1";"When the Wind Blows   0275";"James Patterson "
"4";"The Reluctant Fundamentalist      1026";"Mohsin Hamid";

Der Benutzer dachte, es wäre auf diese Weise leicht zu durchsuchen ...

Jetzt versuche ich, das Problem zu beheben, indem ich die ID aus dem Titelfeld entferne und in eine eigene Spalte einfüge.

Wie wähle ich den Titel mit einem regulären Ausdruck aus, sodass ich am Ende des Titels nur die vierstellige Zahl erhalte?Diese Zahl kann mit einer Null beginnen und der Titel könnte mehr Ziffern als nur diese 4 enthalten.

Es gibt auch keine Garantie dafür, dass es sich bei den Ziffern um die letzten vier Zeichen im Titel handelt, manchmal folgen einige Leerzeichen. SUBSTRING wird in diesem Fall nicht funktionieren

danke für die Hilfe!

War es hilfreich?

Lösung

Wenn die vier Ziffern, die Sie extrahieren müssen, entweder genau am Ende der Zeichenfolge stehen oder nur von Leerzeichen gefolgt werden, wäre es wahrscheinlich am einfachsten, sie mit zu extrahieren RIGHT() Funktion nach dem Entfernen der nachgestellten Leerzeichen mit der RTRIM() Funktion:

SELECT
  RIGHT(RTRIM(YourColumnName), 4) AS SomeCode
FROM
  YourTableName
WHERE
  ...
;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top