2010-03-24 45 views
0

如果我想要查看Excel电子表格列中的哪些值与表中的值不匹配,可以使用批量导入轻松创建一个表。有一种更简单的方法吗? EG,我想要做一个查询,如:从TSQL中的CSV值中创建一个集合

select into #temp from ('a', 'b', 'c') as 'Id' 
select * from #temp where Id not in (select Id from MyTable) 

回答

1

我会建议使用this UDF来分析您的列表到一个表。然后,你应该能够做到以下几点:

SELECT * INTO #temp FROM dbo.udf_List2Table('a,b,c', ',') 
SELECT * FROM #temp WHERE item NOT IN (SELECT Id FROM MyTable) 
+1

你有一个语法错误 - 'INTO'语句必须在'FROM' – 2010-03-24 15:35:16

+0

感谢你。我为你解决了一些语法错误。这很好,但似乎不适合字符串中的换行符,所以从Excel列中粘贴起来有点痛苦。 – RossFabricant 2010-03-24 16:07:36

+0

谢谢埃德。固定。 @rossfabricant - 我可以看到新行导致问题。你可以做一些清理你的CSV文件,然后再通过逗号分隔值到你的查询中?如果你有记事本+ +这个链接可能会帮助你完成:http://notepad-plus.sourceforge.net/uk/newlineFindReplace-HOWTO.php – 2010-03-24 16:35:12

1

而且,我一直在使用的附加列在Excel与一堆CONCATENATE.TEXT的命令来创建INSERT语句。单独将此列复制到文本文件中,就是您的脚本!

+0

谢谢,好主意。但是,从Excel复制时,使用更简单的公式或根本没有公式会更容易。 – RossFabricant 2010-03-24 16:11:00