如何解决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
如何理解 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 举报,一经查实,本站将立刻删除。