雪花表用多个值替换空值

时间:2021-06-24 06:20:39

标签: sql database snowflake-cloud-data-platform upsert

我在 Snowflake 有数据库表,值为 NULL。

<头>
id
a01 5
a02 6
b01 6
b04 NULL

我需要像这个例子一样转换它:

<头>
id
a01 5
a02 6
b01 6
b04 7
b04 8

我必须用多个值替换 NULLs(有 2 个值:78 - 夏季月份)。因此,从每行 NULL 开始,我需要制作两行。

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用两个单独的语句,一个用于插入额外的行,另一个用于更新现有的 NULL 值:

INSERT INTO tab (id, month) 
SELECT id, 8 as month
FROM tab
WHERE month is NULL;

关注

UPDATE tab 
SET month = 7
WHERE month is NULL;

结果:

<头>
id
a01 5
a02 6
b01 6
b04 7
b04 8

this db<>fiddle