我在 Snowflake 有数据库表,值为 NULL。
id | 月 |
---|---|
a01 | 5 |
a02 | 6 |
b01 | 6 |
b04 | NULL |
我需要像这个例子一样转换它:
id | 月 |
---|---|
a01 | 5 |
a02 | 6 |
b01 | 6 |
b04 | 7 |
b04 | 8 |
我必须用多个值替换 NULL
s(有 2 个值:7
和 8
- 夏季月份)。因此,从每行 NULL
开始,我需要制作两行。
答案 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 |