PostgreSQL COPY CSV,带有两个NULL字符串

我有一个来自Web查询的csv文件源,它包含一个字符串的两种变体,我想在复制到PostgreSQL表时将其归类为NULL.

例如

COPY my_table FROM STDIN WITH CSV DELIMITER AS ',' NULL AS ('N/A', 'Not applicable'); 

我知道这个查询会抛出一个错误所以我正在寻找一种在COPY CSV查询中指定两个单独的NULL字符串的方法吗?

最佳答案 我认为在这种情况下你最好的选择,因为COPY不支持多个NULL字符串,就是将NULL字符串参数设置为其中一个,然后,一旦它全部加载,执行一个UPDATE,它将在你想要的任何列中设置值拥有你想要的其他NULL字符串实际的NULL值(确切的查询将取决于哪些列可以具有这些值).

如果您有一堆列,则可以在SET子句中使用CASE语句,如果它与您的特殊字符串匹配则返回NULL,否则返回值.也可以使用NULLIF(这将更紧凑).例如NULLIF(col1,’不适用’)

点赞