Sql 检测jsonb属性是数组还是对象
许多jsonb/json函数都希望列的所有值都是json数组类型(例如Sql 检测jsonb属性是数组还是对象,sql,postgresql,jsonb,Sql,Postgresql,Jsonb,许多jsonb/json函数都希望列的所有值都是json数组类型(例如jsonb\u array\u length)或仅是json对象(例如jsonb\u build\uOject) 数据库中有一些jsonb列同时包含数组和对象根,有没有简单的方法过滤掉数组和对象,以便查询 SELECT DISTINCT jsonb_object_keys(my_column) FROM my_table; cannot call jsonb_object_keys on an array 或 如函数jso
jsonb\u array\u length
)或仅是json对象(例如jsonb\u build\uOject
)
数据库中有一些jsonb列同时包含数组和对象根,有没有简单的方法过滤掉数组和对象,以便查询
SELECT DISTINCT jsonb_object_keys(my_column) FROM my_table;
cannot call jsonb_object_keys on an array
或
如函数jsonb_-typeof
或json_-typeof
中所述,可用于应用此类过滤
像
或
SELECT my_column FROM my_table WHERE jsonb_array_length(column) > 0;
cannot get array length of a non-array
SELECT DISTINCT jsonb_object_keys(my_column)
FROM my_table WHERE jsonb_typeof(column) ='object' ;
SELECT my_column FROM my_table
WHERE jsonb_array_length(column) > 0
AND jsonb_typeof(column) ='array' ;