提取元件通過使用jsonb_array_elements()
函數提取出從Postgres的jsonb
數據陣列,它給了錯誤:提取JSON數組給出錯誤:不能從一個標量
cannot extract elements from a scalar
我假定它是由於NULL
在回電時,增加了NULL
檢查條件但不起作用。任何幫助讚賞。
select id ,
CASE
WHEN report IS NULL OR
(report->'stats_by_date') IS NULL OR
(report->'stats_by_date'-> 'date') IS NULL then to_json(0)::jsonb
ELSE jsonb_array_elements(report -> 'stats_by_date' -> 'date')
END AS Date
from factor_reports_table
截斷的JSON數組的樣子:
"stats_by_date": {"date": [16632, 16633, 16634, ...], "imps": [2418, 896, 1005...], ...}
請提供您的示例json值。錯誤似乎很清楚。傳遞給'jsonb_array_elements'的值是一個標量,而不是一個json數組。 –
「stats_by_date」:{「date」:[16632,16633,16634,16635,16636,16637,16638,16639,16640,16641,16642,16643,16644,16645,16646,16647,16648,16649,16650,16651 ,16652,16653,16654,16655,16656,16657,16658,16659,16660,16661,16662,16663,16664,16665,16666,16667,16668,16669,16670,16671,16672,16673,16674],「imps」,「1」,「1」 「:[2418,896,1005 ...],...} –
它適用於多個條目的限制,如果在所有數據表上循環,則會出現錯誤,因此可能會傳遞一些空/標量到'jsonb_array_elements'函數。想知道如何檢查並繞過它 –