You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DB2查询中如何将空JSON_OBJECT转为NULL而非空对象

解决JSON_OBJECT生成空对象时返回NULL的问题

问题场景

查询ABC表时,使用JSON_OBJECT函数生成FORMATTED_JSON列,当所有参与生成JSON的字段都为NULL时,函数会返回空对象{},但需要此时返回NULL而非空对象。期望输出示例:

IDENTIFIER | FORMATTED_JSON
1 | null

当前使用的查询语句:

SELECT IDENTIFIER, JSON_OBJECT('NAME' VALUE name, 'SIZE' VALUE SIZE FORMAT JSON ABSENT ON NULL) FORMATTED_JSON
FROM ABC

解决方案

可以利用DB2的NULLIF函数,判断生成的JSON结果是否为空对象,若是则替换为NULL。修改后的查询语句如下:

SELECT IDENTIFIER, 
       NULLIF(JSON_OBJECT('NAME' VALUE name, 'SIZE' VALUE SIZE FORMAT JSON ABSENT ON NULL), '{}') FORMATTED_JSON
FROM ABC

说明

NULLIF函数的作用是对比两个参数:如果两个参数值相等,返回NULL;否则返回第一个参数的值。这里将JSON_OBJECT生成的结果与空对象字符串'{}'做比对,当结果为空对象时,就会返回NULL,正好满足需求。

内容的提问来源于stack exchange,提问作者db2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:20:41