Inhalt einer Tabellenspalte auf zwei Spalten einer anderen Tabelle aufteilen

Hallo,
Ich habe in einer Tabelle “customer” unter anderem eine Spalte “contact”, die mit z.B. Herr Müller, Frau Kaiser, Frau Zumpe befüllt ist.
Diese Spalte “contact” möchte ich gern in eine zweite Tabelle übertragen, die die Spalten “cp_title” und “cp_name” enthält.
Wie bekomme ich meine SELECT-Abfrage aus customer.contact (Herr Müller, Frau Kaiser, Frau Zumpe) so gesplittet, dass ich den
“Herr” oder die "Frau"in contacts.cp_title schreiben kann und die Namen (Müller, Kaiser, Zumpe) in die Spalte contacts.cp_name plazieren kann.
Die Tabellen sind mit id bzw. cp_id miteinander verbunden.

Ich hoffe ich habe mich deutlich genug ausgedückt, so dass mir evtl. jemand helfen kann.

Gruß
Armin

Erst einmal suchst Du sowas:

test=*# with x as (select 'Frau Mueller'::text as name) select split_part(name, ' ', 1) as cp_title, split_part(name, ' ', 2) as cp_name from x;
 cp_title | cp_name
----------+---------
 Frau     | Mueller
(1 row)

Deine Idee, das in einer weiteren Tabelle einzutragen, prüfts Du aber bitte nochmals. Wie zu sehen ist, geht sowas ‘on the fly’ bei der Abfrage, sowas doppelt zu halten ist eine eher schlechte Idee.


Andreas

Danke für deine schnelle Antwort, ja genau das habe ich gesucht.
Ich will die Namen nicht doppelt führen, sonder nach der Übertagung in die Tablle contacts werden alle Kontaktpersonen aus der Tabelle customer gelöscht.

Armin

Ahh, okay.

Andreas