RICH-ATONE

clickhouse left join产生的空值或者默认值问题解析

建表语句:

CREATE TABLE default.mt_table
(
    `date` Date,
    `id` UInt8,
    `name` String
)
ENGINE = MergeTree(date, (id, name), 8192)

  

插入数据:

insert into mt_table (date,id,name) values ('2019-05-01',1,'zhangsan');
insert into mt_table (date,id,name) values ('2019-05-02',2,'lisi');

  

执行sql示例:

select a.* ,b.* from
(select * from mt_table where id=1) a
left join
(select * from mt_table where id=2) b
on a.id=b.id
;

  

结果示例:

┌───────date─┬─id─┬─name─────┬─────b.date─┬─b.id─┬─b.name─┐
│ 2019-05-01 │ 1 │ zhangsan │ 1970-01-01 │ 0 │ │
└────────────┴────┴──────────┴────────────┴──────┴────────┘

可以观察到正常关联的话不会有null值产生:

关联不到的id数值类型默认为0;

关联不到的日期类型默认为1970-01-01;

关联不到的String类型为空  ''

 

clickhouse常见的三种空值问题以及解决方案

posted on   RICH-ATONE  阅读(2145)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人

导航

统计信息

点击右上角即可分享
微信分享提示