Ich habe eine Tabelle , parcels
die zur Zeit die Spalten enthält owner_addr1
, owner_addr2
, owner_addr3
. Manchmal ist eines oder beide der beiden letztgenannten Felder leer. Ich möchte sie in einem einzigen neuen Feld kombinieren, in owner_addr
dem jedes der oben genannten Felder mit //
jedem von ihnen verknüpft ist .
Wenn jedoch eine oder mehrere der ursprünglichen Spalten NULL sind, möchte ich nicht //
mit der Ergebnisspalte verketten . So zum Beispiel, wenn owner_addr1
ist 123 4th Avenue SE
und owner_addr2
und owner_addr3
sind NULL
, dann möchte ich die Ergebnisspalte nur sein 123 4th Avenue SE
, nicht 123 4th Avenue SE // //
(was passieren würde , wenn ich gerade tat CONCAT()
mit //
zwischen den NULL - Strings ... ich nur hinzufügen möchten //
zwischen nicht NULL
Spalten oder es verlassen insgesamt aus, wenn es nur eine Nicht- NULL
Spalte gibt.
Gibt es eine einfache Möglichkeit, diese Art der bedingten Verkettung in Postgresql durchzuführen, bei der leere Zeilen weggelassen werden? Oder sollte ich dazu ein Python-Skript schreiben?
concat_ws()
(undconcat()
) FunktionsvolatilitätSTABLE
(nichtIMMUTABLE
), der deren direkte Verwendung in Ausdrucksindizes verbietet.