基本上我有一张 Excel 表,其中包含大约5k +社交安全号码的列表,我想将他们的电子邮件地址添加到 Excel 表中。
是否可以设置电子表格来运行简单的SQL查询,如:
SELECT emailaddress
FROM table
WHERE ssn = '?'
除非它根据查询所在的行自动更改变量,并且让它自动在电子表格中运行,只是查询相应的ssn?
谢谢!
---------------------------------------- EDIT ------ -------------------------------------------
我想如果它有助于澄清,这是我的Excel工作表的基本示例:
A B C D E
1 | Name | Address | Phone Number | Social | |
2 | Brian | 123 Abc ST. | 555-1234 | 111-22-3333 | |
3 | John | 88 N. Road | 444-4848 | 123-45-4568 | |
Etc...
我们的数据库有这个,还有更多字段,所以我想要包含他们的电子邮件,然后将其添加到表格中。
A B C D E
1 | Name | Address | Phone Number | Social | Email |
2 | Brian | 123 Abc ST. | 555-1234 | 111-22-3333 | brian@gmail.com |
3 | John | 88 N. Road | 444-4848 | 123-45-4568 | john@hotmail.com |
^Add this column^
基本上只是在电子邮件列中放入相同的查询,并让它引用它的相应SSN单元格。所以相同的查询将进入Brian和John的电子邮件单元格,但变量将自动选择同一行中的社交。
Query:
SELECT emailaddress
FROM table <-------------Use this query in this column--|
WHERE ssn = '?' But have the variable change |
depending on the row it is in V
A B C D E
1 | Name | Address | Phone Number | Social | Email |
2 | Brian | 123 Abc ST. | 555-1234 | 111-22-3333 | "...where ssn = (D2)"|
3 | John | 88 N. Road | 444-4848 | 123-45-4568 | "...where ssn = (D3)"|
^Query Example^
希望澄清事情。
答案 0 :(得分:0)
执行此操作的最佳方法是将所有SSN加载到SQL,然后将其添加回Excel,并添加emailaddress
字段。
创建一个表来存储数据库中的数据:
CREATE TABLE ssn (ssn CHAR(9));
现在在Excel中,使用此公式生成INSERT语句以加载SSN。这假定数据在A列中,并从第2行开始。这里棘手的部分是确保正确地获得双引号和单引号!
=CONCATENATE("INSERT ssn VALUES ('",A2,"');")
将该公式填入数据底部,然后复制/粘贴到SQL。您现在可以将所有SSN加入到表中,包括如下所示的电子邮件地址:
SELECT s.ssn, t.emailaddress
FROM ssn s
INNER JOIN table t ON s.ssn = t.ssn
我在我的博客“快速联系语句”https://www.rustprooflabs.com/2015/08/sql-for-ir
下的帖子底部有一个更详细的例子。答案 1 :(得分:0)
我认为你能做的最好的事情就是用你的只读数据库构建多个查询:
select [your_desired_fields]
from table
where SSN in (ssn-1, ssn-2, ... ssn-N);
与MySQL的IN
子句接受的逗号分隔参数一样多(例如,Oracle将其限制为1,000)。然后手动或使用UNION查询将结果拼凑在一起。
我使用的是甲骨文,但我认为如果你想加入它们,你可以这样做:
select [your_desired_fields]
from table
where SSN in (ssn-1, ssn-2, ... ssn-1000)
UNION
select [your_desired_fields]
from table
where SSN in (ssn-1001, ssn-2, ... ssn-2000)
UNION
etc, etc.
这里的Range2Csv()
VBA函数可以帮助构造该查询:
http://dullsharpness.com/2011/11/14/excel-vba-range-to-csv-range2csv-function/