Вопрос SQL: Как получить все значения столбцов из столбцов, где не все значения являются нулевыми?
Таблица A
COL1 COL2 COL3 COL4 COL5
---------------------------------------
abc 1 NULL NULL NULL
def 2 NULL testA NULL
NULL 3 NULL testB NULL
jkl 4 NULL NULL NULL
Я хочу получить
COL1 COL2 COL4
-----------------------
abc 1 NULL
def 2 testA
NULL 3 testB
jkl 4 NULL
Есть ли решение sql или plsql для достижения этой цели?Чтобы избежать ответов, которые не имеют значения: предположим, у меня есть миллион строк.Я хочу, чтобы результат был представлением или таблицей результатов.Не письменный вывод.
Я нашел похожий вопрос, но он не удовлетворяет мою потребность: Как выбрать столбцы из таблицы, которые имеют ненулевые значения?
Имена столбцов могут быть быстро получены с помощью этого запроса
select column_name
from all_tab_columns
where lower(table_name)='tableA' and num_distinct > 0;
Я понимаю, что мог бы создать скрипт с курсором, а затем перебрать его, добавив результат в новую таблицу или представление.Это не то, что мне нужно.Я задавался вопросом, можно ли это сделать, используя один запрос, используя pivot / unpivot или что-то еще.