5 Stimmen

POSTGRESQL: Entfernen Sie alle Zeichen vor einem bestimmten Zeichen

Ich habe Werte wie 6864#21, 1a2b#3598 in meiner Datenbank. Ich versuche nur den Teil vor und nach dem # zu extrahieren, sodass ich etwas wie

col1  | col2
-----------
6864  | 21
1a2b  | 3598

bekommen würde.

Ich habe es versucht

REPLACE('123#89', '%#', '')

aber das hat nur zu 123#89 geführt. Weiß jemand, wie ich das machen kann?

13voto

Ilesh Patel Punkte 2103

Versuchen Sie es mit:

SELECT split_part('123#23','#',1) AS "COL1",split_part('123#23','#',2) AS "COL2"

7voto

thor Punkte 20646

Oder Sie können die strpos-Funktion verwenden, um das erste Auftreten des Zeichens zu finden, und dann substr, um alles nach diesem Auftreten abzurufen:

SELECT substr(str, strpos(str,'#'));

Dies funktioniert, wenn es mehrere #'s im String gibt.

0voto

select (string_to_array(the_column, '#'))[1] as col1,
       (string_to_array(the_column, '#'))[2] as col2
from the_table

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X