SQL 查询的 Excel 参数
Posted
技术标签:
【中文标题】SQL 查询的 Excel 参数【英文标题】:Excel Parameters to SQL Query 【发布时间】:2014-11-12 16:28:28 【问题描述】:我查看了老忠实的谷歌,但我找不到我正在寻找的场景。我目前想通过工作表中的 SQL 语句从一个单元格传递一些工作订单,但我无法让它与多个参数一起工作。
我的 TSQL 语句是这样的
select * from Order where OrderNo IN ('GNR1','GNR2')
我想将参数GNR1
和GNR2
等放入我的excel工作簿中的一个单元格“A1
”并带回必要的记录,我对一个参数没有问题,但传递更多超过 1 个我正在努力解决的问题,任何人都可以提供帮助。
我正在使用 SQL Server 2012 和 Excel 2010
【问题讨论】:
我同意允许用户在多个单元格中输入值,然后重新格式化它们以传递给 sql,但不幸的是它们可以有从 1 到 151 的任意数量的值,我会解决的您的建议并努力使它们发挥作用...感谢您的宝贵建议 我一直在玩你的建议,让用户在特定单元格中输入订单,然后将它们重新格式化为 SQL 中的普通 In 语句,但是在运行代码时,我得到了字符串数据,来自SQL Server Drive的右截断错误我在格式化时尝试传递的参数看起来像('GNR68003054','GNR68003055')所以应该没有问题,任何想法为什么会发生这种情况?? 【参考方案1】:您需要将'GNR', 'GNR2'
替换为问号?
。这应该允许您“参数化”查询。然后单元格A1
需要是字符串的精确表示。
将参数?
指向单元格A2
或其他一些单元格,甚至是不同工作表上的单元格可能会有所帮助。也就是说,允许最终用户以自然的方式输入参数,然后在将参数传递给查询之前在其他地方进行实际格式化(添加单引号)。
一些额外的资源:@987654321@ 和 here
【讨论】:
【参考方案2】:如果可以分隔单元格中的值,则可以使用字符串拆分方法并将其分配给代码中的参数,然后根据这些参数值调用查询或存储过程。如前所述,将参数值分隔到多个单元格会容易得多。
【讨论】:
以上是关于SQL 查询的 Excel 参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 VBA 在 Excel 中的 SQL 表上使用参数化查询