有没有办法构造一个只有一个数值的jsonb?
例如,
SELECT pg_typeof(('{"a":1}'::jsonb) -> 'a');
表示('{"a":1}'::jsonb) -> 'a'
jsonb 类型,并且只包含一个数值1
。
但是如何在不构造和破坏对象的情况下直接创建一个1
jsonb呢?
直接类型转换似乎不起作用:
# SELECT 1::jsonb;
ERROR: cannot cast type integer to jsonb
LINE 1: SELECT 1::jsonb;
您需要从字符串而不是数字进行转换:
'1'::jsonb
。这是因为 using'1'
意味着结果实际上是一个常量,而是1
运行时转换。to_jsonb(1)
也可以,但我认为这使用了运行时转换。db<>小提琴