Ich habe ein Feld in einer Postgres-Tabelle, die wie die folgende Tabelle aussieht. Ich möchte die Zeichenfolge in zwei separate Komponenten basierend auf dem Leerzeichen als Trennzeichen aufteilen. Beachten Sie, dass alle Felder TEXT sind.postgresql 9.5: versuchen, eine Zeichenfolge in zwei Felder basierend auf Leerzeichen zu trennen
tablename: intersection_table_wi
wwhid
-----
"102 5"
"104 61"
"103 84"
Deshalb möchte ich dies so zu einem Ziel konvertieren:
wwhid wv002 wv003
----- ----- -----
"102 5" "102" "5"
"104 61" "104" "61"
"103 84" "103" "84"
Das Problem ist, dass, wenn ich die Abfrage schreibe ich immer die Dinge, die wie folgt aussehen:
wwhid wv002 wv003
----- ----- -----
"102 5" "102 5" ""
"104 61" "104 61" ""
"103 84" "103 84" ""
Jetzt ist das subtile Problem, dass in einigen Fällen mehr als ein Leerzeichen zwischen den beiden Teilstrings in whhid ist, während in anderen Fällen nur ein Leerzeichen vorhanden ist.
Die Abfrage Ich habe versucht, sind wie folgt:
UPDATE intersection_table_wi
SET wv002 = SPLIT_PART(BTRIM(whhid), '/\s+', 1),
wv003 = SPLIT_PART(BTRIM(whhid), '/\s+', 2);
Kann mir jemand sagen, wie ich diese Abfrage beheben kann das Ziel oben angegeben zu erhalten?
die doppelten Anführungszeichen tatsächlich ein Teil der Daten sind, benötigen aufgeteilt? –
Ja, das sind alles Saiten. So kamen die ursprünglichen Daten. Ich kann eine Umwandlung auf die Variablen anwenden, nachdem sie getrennt wurden, aber aus Gründen des minimalen Beispiels wollte ich es einfach halten. Aber die Antwort ist, dass die Variablen wwhid, wv002, wv003 Text sind. – krishnab
Also * * speichern Sie diese doppelten Anführungszeichen in der Datenbank? –