作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Excel 工作表,其中包含一个列表,该列表通过在宏中使用列表的 ODBC 连接填充,使用以下属性:
ListObject.QueryTable.WorkbookConnection.ODBCConnection
ODBCConnection.Connection = "ODBC;DSN=Excel Files;" & _
"DBQ=" & ThisWorkbook.FullName & ";" & _
"DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"
ODBCConnection.CommandText = _
"SELECT Column1 FROM [Worksheet2$] WHERE Column2 LIKE '%query%'"
[a-z]
或
[^a-z]
.这些在 ODBC 连接中不按预期运行,而是按字面解释。
ODBCConnection.CommandText = _
"SELECT Column1 FROM [Worksheet2$] WHERE Column2 LIKE '%[^a-z]keyword[^a-z]%'"
最佳答案
Excel ODBC 驱动程序与 SQL Server 是分开的,并且不符合 ANSI SQL。它不支持这种结构,是 不是 一个功能齐全的数据库引擎。相反,它应该被视为访问 Excel 数据的简单功能,例如导入或导出数据。文本 ISAM 驱动程序(CSV 和制表符分隔文件)也是如此。
Excel ODBC 驱动程序不使用完全相同的语法并且不支持范围 a-z
构造,你必须列出所有的字符,所以而不是 [^a-z]
您可以使用 "[!abcdefghijklmnopqrstuvwxyz]"
然而,最好的解决方法可能是简单地使用 Excel 驱动程序将数据从 Excel 电子表格复制到另一个数据库,例如 MDB (Microsoft JET) 或 SCE (SQL Compact Edition) 数据库,您可以在其中使用更全面的功能.
当然,如果您使用的是成熟的 SQL 服务器,那么显而易见的解决方案是将数据复制到临时表中,然后使用平台的全部功能在那里使用它。
关于sql - 为什么我不能在 Excel 2010 中对 ODBCConnection 对象的 SQL ('[a-z]' 查询中使用字符范围 'LIKE' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34809197/
我是一名优秀的程序员,十分优秀!