jsonb_each 函数 Returns 空值不可转换为 null::INT
jsonb_each function Returns null values Not Castable To null::INT
让我解释一下:
[1][没有错误]
SELECT (('{"a": null}'::JSONB)->>'a')::INT;
[2] [此处错误]
SELECT (t.value::TEXT)::INT FROM jsonb_each(('{"a": null}'::JSONB)) AS t
我必须使用jsonb_each函数。
如何让 SQL 数字 2 return 为空?
您可以这样做,例如:
SELECT nullif(t.value::text,'null')::int
FROM jsonb_each(('{"a": null}'::JSONB)) AS t
此致,
比亚尼
在您的第一个示例中,您使用 ->>
,其中 returns 值作为 text
数据类型。等效的 "for each" 函数是 jsonb_each_text()
,它也 returns 的值是 text
。 jsonb_each
returns 每个值作为 JSONB 值
SELECT t.value::INT
FROM jsonb_each_text(('{"a": null}'::JSONB)) AS t
让我解释一下:
[1][没有错误]
SELECT (('{"a": null}'::JSONB)->>'a')::INT;
[2] [此处错误]
SELECT (t.value::TEXT)::INT FROM jsonb_each(('{"a": null}'::JSONB)) AS t
我必须使用jsonb_each函数。
如何让 SQL 数字 2 return 为空?
您可以这样做,例如:
SELECT nullif(t.value::text,'null')::int
FROM jsonb_each(('{"a": null}'::JSONB)) AS t
此致,
比亚尼
在您的第一个示例中,您使用 ->>
,其中 returns 值作为 text
数据类型。等效的 "for each" 函数是 jsonb_each_text()
,它也 returns 的值是 text
。 jsonb_each
returns 每个值作为 JSONB 值
SELECT t.value::INT
FROM jsonb_each_text(('{"a": null}'::JSONB)) AS t