Есть ли лучший способ найти строки со всеми столбцами со значениями? - PullRequest
4 голосов
/ 08 сентября 2010

Мне нужно найти строки в наборах результатов, в которых каждый столбец без нуля.

Эти наборы результатов получили переменное количество столбцов.

В настоящее время я могу думать только о том, чтобы создать представление для каждого набора результатов и отфильтровать его следующим образом:

 select field1, field2, field3, field4, ...
 from "huge query"
 where field1 is not null and  
       field2 is not null and  
       field3 is not null and  
       field4 is not null and
       ...  is not null

Есть ли лучший способ сделать это в хранимой процедуре / функции в SQL Server или в коде .net (c # или vb.net)?

А как быть с чем-то вроде

 select field1, field2, field3, field4, ...
 from "huge query"
 (return to .net apps or insert into #temptable)

, а затем в хранимой процедуре / функции или коде .net (c # / vb.net) перебрать все строки / столбцы и пометить или удалить каждую строку, получившую ноль?

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

Ответы [ 3 ]

3 голосов
/ 08 сентября 2010

Поскольку значения null распространяются, если они имеют одинаковый тип данных, попробуйте

where colA + ColB + ColC, etc Is Not Null

Если это не так, сначала преобразуйте их все (те, которые еще не являются строкой) в символ, а затем объедините их.

where Str(ColA) + Str(ColB) + Str(ColC), etc Is Not Null
3 голосов
/ 08 сентября 2010

Ваш метод не очень хорош, но я думаю, что он будет работать лучше всего. Еще один способ сделать

WHERE (field1 + field2 + field3 + field4) IS NOT NULL
0 голосов
/ 08 сентября 2010

Если field1, field2, field2 ... fieldX являются строками, вы можете попробовать:

select field1, field2, field3, field4, ...
from "huge query"
where field1 + field2 + field3 + ... + fieldX is not null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...