Abschneiden mit variabler Länge nach Bindestrich

FrenchSpirit

Aktiver Benutzer
Beiträge
41
Hallo in die Runde,

ich habe in einer Tabelle folgende Werte:

xxxxx-yyy

Hierbei ist die Anzahl der Zeichen der Platzhalter "x" vor dem Bindestrich als auch die Anzahl der Zeichen im Platzhalter "y" unterschiedlich lang. Also z.B. folgende Werte:

4711-1
379-2
12578-12

In meiner Selektion möchte ich immer nach dem Bindestrich abschneiden, es soll also für die 3 Beispielwerte folgendes rauskommen:

4711
379
12578

Ich habe schon mit den Funktionen "Links" und "Rechts" probiert, da aber die Längen unterschiedlich sind, kommt es nicht hin. Kann ich in der Abfrage irgendwie den konstant vorkommenden Bindestrich identifizieren und entsprechend nutzen?

Besten Dank vorab für eure Hilfe und viele Grüße

Spirit
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.848
hier 2 Wege, die mir grad einfallen:

Code:
edb=*# select * from french_spiŕit;
    t     
----------
 4711-1
 379-1
 12578-12
(3 rows)

edb=*# select t, regexp_replace(t,'-.*$',''), split_part(t,'-',1) from french_spiŕit;
    t     | regexp_replace | split_part 
----------+----------------+------------
 4711-1   | 4711           | 4711
 379-1    | 379            | 379
 12578-12 | 12578          | 12578
(3 rows)

edb=*#

regexp_replace() und split_part(), ich weiß aber nicht, ob Deine Datenbank wenigstens eines davon kann.
 
Werbung:
Oben