Sql server 查询包含数据范围的SQL server

Sql server 查询包含数据范围的SQL server,sql-server,vba,excel,Sql Server,Vba,Excel,我通过Excel 2007连接到SQL server。数据如下所示: A0001-A9999,X9999-X9999 | 1234 B0001-B9999 | 5678 C0001-C4999 | 1111 C4500-C4999 | 1112 C5000-C9999,D0001-D9999 | 2222 ... 第一列是一个值范围,其中第二列是应输出的值。示例:“C4000”的输入将返回“1111”,而“C4600”的输

我通过Excel 2007连接到SQL server。数据如下所示:

A0001-A9999,X9999-X9999 | 1234
B0001-B9999             | 5678
C0001-C4999             | 1111
C4500-C4999             | 1112
C5000-C9999,D0001-D9999 | 2222
...
第一列是一个值范围,其中第二列是应输出的值。示例:“C4000”的输入将返回“1111”,而“C4600”的输入将返回“11111112”

如何编写代码,允许表单用户在工作表的某个单元格中输入任何一个输入,并在另一个单元格中获得输出?想法是点击一个按钮,激活一个宏,截断数据并报告结果。我精通VBA代码的编写,并且更愿意使用它,否则我不反对尝试学习SQL


在这种情况下,用户知道总是将一个字母后跟四个数字作为输入。我无法编辑表中的数据,只能从SQL server中提取数据。

关于要使用哪些工具,问题很模糊。但解决方案将不是SQL解决方案。您始终可以在Excel中设置PowerPivot来完成此操作

我很想把信息分解成更简单的形式,但不幸的是,我没有权力更改表格,我只能从中提取。因为从SQL中提取的数据大约有26000行,我担心计算机在一个单独的子节点中将这些行分解为1NF会导致计算时间变得疯狂。请注意,第3和第4个范围重叠:(从服务器提取数据是什么意思?)这是一个嵌入式查询?还是VBA与ADO一起用于获取数据?在这种情况下,您必须将数据解析为可用的形式-我将第一列拆分为“letterCode”、“lo”和“hi”并为具有多个范围的行添加行。是的,实际上有许多不同的重叠范围,我只是给出了数据的简化版本。请原谅我使用非技术术语。从data->From Other Sources->From Microsoft Query,我连接到SQL server,从我想要的表中选择列,并使用预筛选来选择ect仅适用于我的行(我认为SQL翻译是:WHERE column=something)。我还没有将VBA与ADO结合使用,但我现在正在阅读它。