1

我正在尝试连接多个列,如果 postgres 中的列为 NULL 或为空,则跳过该列。例如:

SELECT CONCAT(coalesce('a',''),
        '|',coalesce('b',''),
        '|',coalesce(NULL,''),
        '|',coalesce('',''),
        '|',coalesce('',''),
        '|',coalesce('c','')) AS finalstring;

输出 :a|b||||c

预期输出:a|b|c

4

1 回答 1

8

使用concat_ws(),它忽略null值:

concat_ws('|', col1, col2, col3, ...) 

如果您也想忽略空字符串,那么您可以使用nullif()

concat_ws('|', nullif(col1, ''), nullif(col2, ''), nullif(col3, ''), ...) 
于 2020-07-23T21:09:53.083 回答