【问题标题】:PostgreSQL COPY CSV with two NULL strings带有两个 NULL 字符串的 PostgreSQL COPY CSV
【发布时间】:2015-05-22 23:30:40
【问题描述】:

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

例如

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

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

【问题讨论】:

    标签: postgresql csv null


    【解决方案1】:

    我认为在这种情况下你最好的选择是,因为COPY 不支持多个NULL 字符串,所以将NULL 字符串参数设置为其中一个,然后,一旦全部加载,执行@ 987654324@ 将在任何列中设置值,您希望将另一个 NULL 字符串设置为实际的 NULL 值(确切的查询取决于哪些列可以具有这些值)。

    如果你有一堆列,你可以在你的SET 子句中使用CASE 语句来返回NULL,如果它匹配你的特殊字符串,否则返回值。 NULLIF 也可以使用(这样会更紧凑)。例如NULLIF(col1, 'Not applicable')

    【讨论】:

    • NULLIF 也可以使用(这样会更紧凑)。例如NULLIF(col1, 'Not applicable') - 这是一个很好的干净方式。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多