Postgresql-14
如何構造一個包含數字的jsonb?
有沒有辦法構造一個只有一個數值的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)
也可以,但我認為這使用了執行時轉換。SELECT pg_typeof('1'::jsonb), jsonb_typeof('1'::jsonb);