Предположим таблицу json_table
со столбцами id (int), data (jsonb)
. Примером значения jsonb будет
{"a": [{"b":{"c": "xxx", "d": 1}},{"b":{"c": "xxx", "d": 2}}]}
Когда я использую оператор SQL, подобный следующему:
SELECT data FROM json_table j, jsonb_array_elements(j.data#>'{a}') dt WHERE (dt#>>'{b,d}')::integer NOT IN (2,4,6,9) GROUP BY id;
... два элемента массива неопубликованы, и тот, который квалифицируется предложение WHERE все еще возвращается. Это имеет смысл, поскольку каждый элемент массива рассматривается индивидуально. В этом примере я вернусь к полной строке
{"a": [{"b":{"c": "xxx", "d": 1}},{"b":{"c": "xxx", "d": 2}}]}
Я ищу способ исключить полную строку json_table
, когда любой элемент массива jsonb не выполняет условие