微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ClickHouse:0 是 Null 吗?

如何解决ClickHouse:0 是 Null 吗?

complete
select *,isNull(a.id),isNull(b.id) from test.A a full join test.B b on a.id = b.id

enter image description here

如何理解 0 是 0 还是 0 是 Null?

解决方法

问题是如何处理外连接。根据文档,这使用设置 join_use_nulls:

设置 JOIN 行为的类型。合并表格时,可能会出现空单元格。 ClickHouse 根据此设置对它们进行不同的填充。

可能的值:

0 — 空单元格填充相应字段类型的默认值。 1 — JOIN 的行为方式与标准 SQL 中的行为方式相同。对应字段的类型转换为Nullable,空单元格用NULL填充。

默认值:0。

换句话说,默认方法是非 SQL 兼容。就我个人而言,我认为这种默认设置没有用。我想 Clickhouse 对 Data - Text to Columns 的价值观有强烈的反感。

因此,您可以改为检查 NULL 以查看是否存在匹配项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。