我想使用ODBC系统DSN for Excel 12.0从excel文件中查询数据。
从工作表中查询特定列的正确语法是什么,而不是像这个示例那样查询整个工作表:
SELECT' Sheet1 $'。* FROM' Sheet1 $' **
我需要能够不查询所有这些内容,也不能导入空行。
答案 0 :(得分:0)
您最好的选择是使用OPENROWSET。如果您的Excel文件有列标题,那么您可以执行类似
的操作Select MyFirstColumn, MySecondColumn, MyThridColumn, MyLastColumn FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=\\myServer\MyPath\MyFile.xlsx;HDR=YES', 'SELECT * FROM [myWorkSheet$]')
如果您没有行标题,请设置HDR=NO
并使用列名F1, F2....F99
等。
您可以添加where子句来过滤掉空行,就像使用常规表一样。
注意您需要允许临时查询,并确保在esrver上安装了提供程序。有很多关于如何做到这一点的文章,非常简单。
还要记住,路径必须对服务器可见,而不仅仅是本地工作站。