Excel:使用单元值作为SQL查询的参数
问题描述:
我正在使用MS Excel通过ODBC从MySQL数据库获取数据。
我使用SQL查询成功获取数据。但是现在我想让这个查询参数化。
所以我想知道是否可以使用单元格值(电子表格单元格)作为这种查询的参数。
例如,对于这个查询:Excel:使用单元值作为SQL查询的参数
select name from user where id=1
我想获得在电子表格中的值,比如说,从小区D4的ID。
这是正确的方法来参数化查询?我该怎么做?
谢谢。
答
我和你有同样的问题,Noboby能理解我,但我用这种方式解决了它。
SELECT NAME, TELEFONE, DATA
FROM [sheet1$a1:q633]
WHERE NAME IN (SELECT * FROM [sheet2$a1:a2])
你需要将其它表的参数时,SQL会考虑像作为 数据库信息,那么你可以选择的信息,并比较他们到你喜欢的参数。
答
如果您使用的是微软查询,您可以添加“?”到您的查询...
select user from user where id =?
当你回到excel时,它会弹出一个小窗口询问cell/data/etc。
在弹出窗口中,您也可以选择“始终使用此单元格作为参数”,无需在每次刷新数据时定义该单元格。这是最简单的选择。
答
SQL有点像MS SQL的语法。
SELECT * FROM [table$] WHERE *;
重要的是,表名以$符号结尾,整个事物放在括号中。作为条件,您可以使用任何值,但到目前为止,Excel不允许使用我称之为“SQL撇号”(')的内容,因此建议使用一个字中的列标题。
如果你有一个名为“用户”表中列出的用户,而id是在标题为“ID”,并在标题为“姓名”一栏名称一栏,查询将如下所示:
SELECT Name FROM [Users$] WHERE id = 1;
希望这会有所帮助。
谢谢,我不知道这一点。我会试试看。 – GetFree 2011-10-05 21:59:05
您好,对不起后面的问题,我想我们也可以使用命名函数/命名范围/命名单元格作为参数? – 2017-06-29 04:55:08