选择"查询 jsonb 列"。"喜欢"的替代



我有一个jsonbjsonb_data列的postgresql表:

| jsonb_data                                          |
| --------------------------------------------------- |
| [ {"a": {"aa": "", "ab": 0}, "b": null, "c": ""} ]  |
| [ {"a": {"aa": ""}, "b": {"ba": "", "bb": 0} ]      |
| [ "c": {"ca": 1} ]                                  |
| [ "b": {"bb": 0} ]                                  |

如何选择存在的所有行"b"? 这个查询必须返回这样的行:

| jsonb_data                                          |
| --------------------------------------------------- |
| [ {"a": {"aa": "", "ab": 0}, "b": null, "c": ""} ]  |
| [ {"a": {"aa": ""}, "b": {"ba": "", "bb": 0} ]      |
| [ "b": {"bb": 0} ]                                  |
CREATE temp TABLE test_like (
data jsonb
);
INSERT INTO test_like
VALUES ('[{"a": {"aa": "", "ab": 0}}, {"b": null, "c": ""} ] '),
('[ {"a": {"aa": ""}}, {"b": {"ba": "", "bb": 0}}]'),
('[ {"c": {"ca": 1}} ]'),
('[ {"b": {"bb": 0}} ]');
WITH cte AS (
SELECT
data,
jsonb_path_exists(data, '$[*].b')
FROM
test_like
)
SELECT
data
FROM
cte
WHERE
jsonb_path_exists;

相关内容

  • 没有找到相关文章

最新更新