У меня есть запрос вроде следующего:Как исключить нулевые строки без исключения нулевых ячеек при извлечении Excel в C# с использованием SQL (ADO)?
SELECT * FROM OPENROWSET('MSDASQL', 'Driver={Microsoft Excel Driver (*.xls)};DBQ=D:\test.xls','SELECT * FROM Sheet1$]')
Это возвращает строки, которые все пустое значение, если они когда-либо были отредактированы, а затем удаляется. Я хочу исключить их, но все равно включать строки, содержащие хорошие данные, но возможные нулевые ячейки.
Мой первый инстинкт должен был сделать «где каждый столбец IS NOT NULL» операции AND вместе, например, так:
SELECT * FROM OPENROWSET('MSDASQL', 'Driver={Microsoft Excel Driver (*.xls)}; DBQ=D:\test.xls', 'SELECT * FROM Sheet1$]') WHERE ( Col1 IS NOT NULL AND Col2 IS NOT NULL AND Col3 IS NOT NULL AND Col4 IS NOT NULL )
Это эффективно устраняет пустые строки, но по какой-то причине, а также устраняет ряд где COL4 имеет нулевую запись. Я пробовал это с парашютами и без них вокруг предложения WHERE.
Кто-нибудь видит, что я могу делать неправильно, или вместо этого, есть предложение другого метода, который я могу использовать для достижения тех же результатов?
Это в настоящее время реализуется в C# с использованием ADO, но я тестирование запроса с помощью среды SQL Server Management Studio, 2008.
0 ... так что я понимаю, что могу сделать это в коде C#. Я все еще думаю, что это странное поведение от SQL, поэтому мне хотелось бы получить ответы или мысли о том, почему это не работает в SQL. – IronicMuffin