Ниже моя таблица1
-------------------------------------
category_name | col1_name | col2_name
-------------------------------------
postgres | 1 | null
-------------------------------------
SAM | null | 2
-------------------------------------
MariaDB | 1 | 3
-------------------------------------
Ниже мой запрос
select row_to_json(row) as "tableRow"
from (
select
t.category_name as "categoryName",
( select distinct on (col2_name)
st.col2_name as "col2Name"
from Table1 st
where
st.col2_name = t.col2_name and
st.col2_name is not null )
from Table1 t
) row;
Ниже мой результат
-------------------------------------------
tableRow
-------------------------------------------
{"categoryName":"postgres","col2Name":null}
-------------------------------------------
{"categoryName":"SAM","col2Name":"2"}
-------------------------------------------
{"categoryName":"MariaDB","col2Name":"3"}
-------------------------------------------
Как мне вернуть мой результат как показано ниже?
-------------------------------------------
tableRow
-------------------------------------------
{"categoryName":"postgres"}
-------------------------------------------
{"categoryName":"SAM","col2Name":"2"}
-------------------------------------------
{"categoryName":"MariaDB","col2Name":"3"}
-------------------------------------------
col2_name не должен возвращаться, если в нем есть нулевое значение.
Я попытался включить 'col2_name не является нулевым' в родительский запрос, но это удаляет весь ряд.
Пожалуйста, помогите. Спасибо.