I have a table parcels
which currently contains the columns owner_addr1
, owner_addr2
, owner_addr3
. Sometimes, one or both of the latter two fields is empty. I want to combine them into a single new field, owner_addr
where each of the above fields is concatenated with //
between each of them.
But if one or more of the original columns is NULL, I don't want to concatenate //
to the result column. So for instance, if owner_addr1
is 123 4th Avenue SE
and owner_addr2
and owner_addr3
are NULL
, then I want the result column to just be 123 4th Avenue SE
, not 123 4th Avenue SE // //
(which would happen if I just did CONCAT()
with //
between the NULL strings ... I only want to add //
between non-NULL
columns, or leave it out altogether if there is only one non-NULL
column.
Is there an easy way to do this kind of conditional concatenation in Postgresql, where it leaves out empty lines? Or should I write a python script to do this?
concat_ws()
(andconcat()
) having function volatilitySTABLE
(notIMMUTABLE
), which prohibits their direct use in expression indexes.