如果我想要查看Excel电子表格列中的哪些值与表中的值不匹配,可以使用批量导入轻松创建一个表。有一种更简单的方法吗? EG,我想要做一个查询,如:从TSQL中的CSV值中创建一个集合
select into #temp from ('a', 'b', 'c') as 'Id'
select * from #temp where Id not in (select Id from MyTable)
如果我想要查看Excel电子表格列中的哪些值与表中的值不匹配,可以使用批量导入轻松创建一个表。有一种更简单的方法吗? EG,我想要做一个查询,如:从TSQL中的CSV值中创建一个集合
select into #temp from ('a', 'b', 'c') as 'Id'
select * from #temp where Id not in (select Id from MyTable)
我会建议使用this UDF来分析您的列表到一个表。然后,你应该能够做到以下几点:
SELECT * INTO #temp FROM dbo.udf_List2Table('a,b,c', ',')
SELECT * FROM #temp WHERE item NOT IN (SELECT Id FROM MyTable)
而且,我一直在使用的附加列在Excel与一堆CONCATENATE.TEXT的命令来创建INSERT语句。单独将此列复制到文本文件中,就是您的脚本!
谢谢,好主意。但是,从Excel复制时,使用更简单的公式或根本没有公式会更容易。 – RossFabricant 2010-03-24 16:11:00
你有一个语法错误 - 'INTO'语句必须在'FROM' – 2010-03-24 15:35:16
感谢你。我为你解决了一些语法错误。这很好,但似乎不适合字符串中的换行符,所以从Excel列中粘贴起来有点痛苦。 – RossFabricant 2010-03-24 16:07:36
谢谢埃德。固定。 @rossfabricant - 我可以看到新行导致问题。你可以做一些清理你的CSV文件,然后再通过逗号分隔值到你的查询中?如果你有记事本+ +这个链接可能会帮助你完成:http://notepad-plus.sourceforge.net/uk/newlineFindReplace-HOWTO.php – 2010-03-24 16:35:12