在 Redshift 表列中看不到“Null”值
Posted
技术标签:
【中文标题】在 Redshift 表列中看不到“Null”值【英文标题】:Cannot see "Null" value in Redshift table column 【发布时间】:2019-02-25 16:14:01 【问题描述】:我有一个 redshift 表格,在 create 语句中有以下列
ExpiryDate Timestamp without time zone NULL Encode zstd,
IssueDate Timestamp without time zone NULL Encode zstd,
RewardNumber varchar(64) NULL Encode zstd,
VoucherIdentifier varchar(64) NULL Encode zstd
将数据插入表后,我可以看到“ExpiryDate”和“IssueDate”的 NULL 值,但我不知道为什么看不到“RewardNumber”和“VoucherIdentifier”的任何 NULL 值。它只是为两列显示空白。我正在使用 DBvisualizer 连接到 redshift。
我在创建表格时做错了什么
【问题讨论】:
您使用什么 SQL 将值插入表中。是否肯定插入 NULL 值而不是空字符串?您还应该检查查询工具中数据格式的属性,以防有设置显示空值是空白而不是单词“null”。 【参考方案1】:COPY 有一个可选参数 EMPTYASNULL。
指示 Amazon Redshift 应加载空 CHAR 和 VARCHAR 字段为 NULL。其他数据类型(例如 INT)的空字段是 总是加载 NULL。当数据包含两个时出现空字段 分隔符连续,分隔符之间没有字符。 EMPTYASNULL 和 NULL AS ''(空字符串)产生相同的行为。
我的假设是您在加载表格时没有指定该选项。
参考Data Conversion Parameters
【讨论】:
除非您发布您的副本声明(无凭据),否则我们无法确定。以上是关于在 Redshift 表列中看不到“Null”值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Amazon Redshift 中的临时表列更新现有表中的列?
Amazon Redshift - 表列声明为 varchar(max) 但强制为 varchar(255)
如何将 CSV 导出复制到添加了新列的 Redshift 表中?