PostgresSQL проблема с оператором jsonb '-' - PullRequest
0 голосов
/ 14 апреля 2020

У меня проблемы с использованием оператора jsonb '-' в сложной структуре json. Мне нужно удалить несколько полей из json, каждое из которых имеет определенные c условия, которые необходимо заполнить, чтобы они появились, что-то вроде этого.

SELECT json_build_object(
        'MainA', (SELECT now())
        , 'MainB', ARRAY(
                            SELECT json_build_object(
                                'JsonA', 'SOMETHNIG HERE'
                                , 'JsonB', 'SOMETHING HERE ONLY IF subp.code != 'S/P', OTHERWISE JsonB should not exist (not even be null)'
                                , 'JsonC', 'SOMETHING HERE ONLY IF JsonA == '123', OTHERWISE JsonC should not exist (not even be null)'
                                , 'JsonD', 'SOMETHING HERE ONLY IF JsonA == '234' OTHERWISE JsonD should not exist (not even be null)'
                                , 'JsonE', 'SOMETHING HERE ONLY IF JsonD exists and is TRUE OTHERWISE should not exists (not even be null)'
                            ) FROM subproducts subp INNER JOIN products p ON p.id_product = subp.id_product WHERE p.active_product = true AND subp.active = true
    )::TEXT root FROM company_info c

Я пытался добавить оператор '-' и работал над его добавлением до части запроса FROM , но я не могу добавить туда условия CASE.

Кто-нибудь может мне помочь?

...