2017-02-14 12 views
0

Быстрый вопрос, вероятно, имеет двоичный ответ.Как не фильтровать столбцы для значений NULL?

Учитывая ниже:

columnA columnB columnC column..? columnZ 
1  2  NULL 2   2 
2  2  NULL NULL  2  
3  NULL  NULL 2   NULL 

Есть ли способ, что я могу написать запрос, который будет отображать только те столбцы, которые не имеют общий результат комбинированной NULL? что-то вроде:

select (IS NOT NULL) из x.table где columnZ = 2;

возвращается:

columnA columnB column..? columnZ 
1  2  2   2 
2  2  NULL  2  

исключает бесполезное columnC, который не имеет пригодных к использованию данных, без специально ссылающегося его, как и прежде я выполнить запрос, я не знаю, какие столбцы будут содержать полезные данные?

Cheers!

+1

Нет простого способа. Это можно сделать только с помощью динамического SQL, потому что SQL-запрос имеет фиксированный набор именованных столбцов в 'SELECT'. –

+0

Привет, я рассмотрю это. На данный момент, хотя он начинает переполняться. Я просто не хочу прокручивать правые кучи. – averagescripter

+0

** Почему ** вам нужно это сделать? Какую бы проблему вы ни пытались решить, считаете ли вы, что это правильное решение? – mathguy

ответ

0

Хорошо, что вы можете сделать, это запустить инструкцию select, где категория IS NOT NULL. Который будет возвращать столбцы, у которых есть ненулевые значения для этой конкретной категории. Или вы запускаете оператор select, где категория IS NULL, и в зависимости от условий удаляет этот столбец. Потому что есть несколько категорий, которые вам нужно будет проверить для каждого.