jsonb_each函数返回null值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返回null?

在第一个示例中,您使用->>,它将值作为text数据类型返回。等效的"for each"函数是jsonb_each_text(),它也将值返回为textjsonb_each将每个值作为JSONB值返回

SELECT t.value::INT 
FROM jsonb_each_text(('{"a": null}'::JSONB)) AS t

您可以这样做,例如:

SELECT nullif(t.value::text,'null')::int
FROM jsonb_each(('{"a": null}'::JSONB)) AS t

问候,
Bjarni

最新更新