如何从json列postgreSQL中删除{}和[]

时间:2016-07-25 14:51:10

标签: json postgresql

我在postgreSQL中有json数据类型的列。直到今天还没有包含{}或[]的行。

但是,由于新的实施,我开始看到{}和[]。我想删除它。

示例:以下是我的表格。 json是json数据类型

 id |       json       
----+------------------
  a | {"st":[{"State": "TX", "Value":"0.02"}, {"State": "CA", "Value":"0.2" ...
----+------------------
 b  | {"st":[{"State": "TX", "Value":"0.32"}, {"State": "CA", "Value":"0.47" ...
----+------------------
 d  | {}
----+------------------
 e  | []

我想要的地方如下:

 id |       json       
----+------------------
  a | {"st":[{"State": "TX", "Value":"0.02"}, {"State": "CA", "Value":"0.2" ...
----+------------------
 b  | {"st":[{"State": "TX", "Value":"0.32"}, {"State": "CA", "Value":"0.47" ...

我应该怎么做?

我写了以下查询:

SELECT *
FROM tableA
WHERE json::text <> '[]'::text 

我能够过滤以{}开头的空元素。但仍然看到[]。

1 个答案:

答案 0 :(得分:2)

非常简单,只需选择不包含这些值的所有行:

SELECT *
FROM tableA
WHERE json :: text NOT IN ('{}', '[]')