如何从json列postgreSQL中删除{}和[]
我在postgreSQL中使用json数据类型的列。直到今天,还没有包含{}或[]的行 然而,由于新的实现,我开始看到{}和[]。我想把它去掉 下面是我的桌子的样子。json是json数据类型如何从json列postgreSQL中删除{}和[],json,postgresql,Json,Postgresql,我在postgreSQL中使用json数据类型的列。直到今天,还没有包含{}或[]的行 然而,由于新的实现,我开始看到{}和[]。我想把它去掉 下面是我的桌子的样子。json是json数据类型 id | json ----+------------------ a | {"st":[{"State": "TX", "Value":"0.02"}, {"State": "CA", "Value":"0.2" ... ----+------------------
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
选择*
从表格
其中json::text“[]”:text
我可以过滤以{}开头的空元素。但是仍然可以看到[]。非常简单,只需选择不包含这些值的所有行:
SELECT *
FROM tableA
WHERE json :: text NOT IN ('{}', '[]')
非常简单,只需选择不包含这些值的所有行:
SELECT *
FROM tableA
WHERE json :: text NOT IN ('{}', '[]')
换句话说:您想删除空元素吗?是的,我想删除空元素。我不知道它为什么会出现,但当我想要查询它时,我不想要空元素。真正的问题是:为什么有时插入空JSON对象,有时插入空JSON数组。换句话说,你想要删除空元素?是的,我想要删除空元素。我不知道它为什么会出现,但当我想要查询它时,我不想要空元素。真正的问题是:为什么有时插入空JSON对象,有时插入空JSON数组。