我在PostgreSQL表中有一个jsonb
字段,该字段应该包含类似数据{}的字典,但由于源数据问题,它的条目很少有数组。
我想清除那些条目。其中一种方法是执行以下查询 -
select json_field from data_table where cast(json_field as text) like '[%]'
但是这需要将每个jsonb字段转换为文本。由于data_table的订单数量为2亿条,这看起来有点过分。
我调查了pg_typeof
但它返回了jsonb,它无法区分字典和数组。
有没有更有效的方法来实现上述目标?
答案 0 :(得分:0)
How about using the json_typeof
function?
select json_field from data_table where json_typeof(json_field) = 'array'