Как исключить пустые строки без исключения пустых ячеек при извлечении Excel в C # с использованием SQL (ADO)? - PullRequest
0 голосов
/ 04 февраля 2010

У меня есть запрос, подобный следующему:

SELECT * FROM OPENROWSET('MSDASQL', 'Driver={Microsoft Excel Driver (*.xls)};DBQ=D:\test.xls','SELECT * FROM Sheet1$]')

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

Моим первым инстинктом было сделать "ГДЕ каждый столбец НЕ НЕДЕЙСТВИТЕЛЕН" и соединить их вместе, например:1007 *

Это эффективно удаляет пустые строки, но по какой-то причине также удаляет строку, в которой Col4 имеет нулевую запись.Я пробовал это с и без скобок вокруг предложения WHERE.

Кто-нибудь видит, что я могу делать неправильно, или вместо этого есть предложение другого метода, который я мог бы использовать для достижения тех же результатов?

В настоящее время это реализуется в C # с использованием ADO, но я тестирую запрос с помощью Sql Server Management Studio 2008.

1 Ответ

3 голосов
/ 04 февраля 2010
WHERE 
(
  Col1 IS NOT NULL 
  OR Col2 IS NOT NULL 
  OR Col3 IS NOT NULL 
  OR Col4 IS NOT NULL 
)

или

ГДЕ Coalesce (Col1, Col2, Col3, Col4) НЕ НУЛЬ (нет функции объединения для oledb / excel)

...