我有如下问题:
SELECT * FROM OPENROWSET('MSDASQL', 'Driver={Microsoft Excel Driver (*.xls)};DBQ=D:\test.xls','SELECT * FROM Sheet1$]')
这将返回所有空的行(如果曾经编辑过这些行,然后将其删除)。我想排除这些行,但仍然包括数据良好但可能为空单元格的行。
我的第一直觉是做一个“每列都不是空的”,然后把它们放在一起,就像这样:
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条款前后都试过这个。
是否有人看到我可能做错了什么,或者有人建议我可以使用不同的方法来达到相同的结果?
这目前正在使用ADO在C中实现,但我正在使用SQL Server Management Studio 2008测试查询。