2014-02-12 4 views
0

У меня есть таблица с 260 столбцами, я просто хочу видеть только столбцы с нулями в ней. Я знаю, что есть несколько более длинных версий, чтобы увидеть эту информацию, но есть ли более быстрый способ? Благодаря GurusSQL для выбора только нулей из таблицы

+2

Вы имеете в виду, где все столбцы равны нулю? или ANY столбец равен нулю? Что такое «более длинные» версии, которые вы хотите улучшить? –

+0

Вы хотите, чтобы запрос, чей результирующий набор удаляет столбцы, если набор результатов не имеет нулевых значений? Сожалею. Вы не можете добраться туда отсюда. Вы можете запросить системные таблицы (метаданные) и использовать их для построения запроса к таблице, набор результатов которой содержит только столбцы с нулевым значением, но вы не можете записать 'select * -nonnullable from foo'. Это не работает. –

+0

Ищите запрос PIVOT – koriander

ответ

4
SELECT t.column_name 
FROM user_tab_columns t 
WHERE t.nullable = 'Y' AND t.table_name = 'mytable' AND t.num_distinct = 0 

Кроме того, перед запуском его обновить статистику:

BEGIN 
DBMS_STATS.gather_database_stats(); 
END 
+0

ВЫБОР t.column_name от IP_HEADER т ГДЕ t.nullable = 'Y' и t.IP_HEADER = 'туЬаЫе' И t.num_distinct = 0 Ошибка разработчик Oracle SQL: ОРА-00904: "T" . "NUM_DISTINCT": недопустимый идентификатор 00904. 00000 - "% s: неверный идентификатор"? * Причина: * Действие: Ошибка в строке: 7 Колонка: 71 – StackBartender

+0

Откуда вы получаете 'IP_HEADER' от Используйте его как это является. – Mihai

1

Если ваш вопрос об отображении Nullable столбцов таблицы, посмотрите @Mihai ...

Вы можете определенно написать динамический Pl/Sql для создания и выполнения оператора, содержащего только столбцы, содержащие нуль. Вы можете использовать серии циклов, Ref_cursor, Execute Immediate, словари данных оракула и т. Д.

Но если бы вы были в состоянии, вы бы уже знали.

Регулярно вы можете выбрать некоторые данные, где определенные значения: null. Например.

Select * From myTable where Col1 is null or col2 is null... -- 258 more columns 

Это вернет все 260 столбцов, N строки, в которых по крайней мере один столбец является Null

Смежные вопросы