如何将Excel单元格内容传入PowerQuery ODBC查询的IN语句?
解决SQL拼接命名单元格内容的语法错误问题
你的问题出在拼接SQL时多余的双引号——因为named_cell_1里已经包含了IN子句需要的括号和单引号格式,直接套双引号会导致SQL解析出错。
修正方法
直接将命名单元格的原始值拼接到IN后面,不要加额外的引号。以VBA环境为例,正确的拼接代码如下:
Dim sqlText As String sqlText = "Select * from table_1.database_1 where xxxxx IN " & Range("named_cell_1").Value
额外注意事项
- 确保
named_cell_1的内容始终保持合法格式:必须以(开头、)结尾,内部每个值用单引号包裹并以逗号分隔,比如('X-1','Y-2')。 - 如果单元格内的值本身包含单引号(比如
'O'Neil'),需要提前转义,把单个单引号改成两个连续单引号('O''Neil'),避免SQL语法报错。
内容的提问来源于stack exchange,提问作者Mark Heptonstall
相关产品推荐
相关产品推荐

