【发布时间】:2020-12-01 04:24:04
【问题描述】:
这是我的查询
从表名中选择 object_construct('id', id, alpha, PARSE_JSON(null)) 限制1
输出是 { "id" :1, "alpha":null }
但是当我将 parse_json 与 ifnull 结合使用时,它会返回空对象 {} 无法按预期工作
select object_construct('id',IFNULL(id, (PARSE_JSON(null)), alpha, IFNULL(alpha, (PARSE_JSON(null))) 来自表名限制 1
以上返回{}
但我需要有空值 { "id" : 1, "alpha" : null }
合并没有任何解决方案?
[问题更新]
感谢费利佩·霍法。
在您的回答中,最后一部分按预期工作。
SELECT OBJECT_CONSTRUCT('id', id, 'alpha', IFNULL(alpha, PARSE_JSON('null')))
FROM (SELECT 1 id, null alpha)
# {"alpha": null, "id": 1}
但是当我尝试以下方法时,它不起作用
SELECT OBJECT_CONSTRUCT(
'id', id,
'alpha', IFNULL(alpha, PARSE_JSON('null'))
)
FROM (SELECT id, alpha from tableName)
#{ "id" :1 }
当使用您的 FROM 查询时,它可以工作:FROM (SELECT 1 id, null alpha)
在使用我的 FROM 查询时不起作用:FROM (SELECT id, alpha from tableName)
希望破灭。
提前致谢
【问题讨论】:
-
您需要使用 IS_NULL_VALUE 来测试 JSON 中的空值。
标签: snowflake-cloud-data-platform snowflake-schema snowflake-task