2010-03-24 4 views
0

Si je veux voir quelles valeurs d'une colonne de feuille de calcul Excel ne correspondent pas aux valeurs d'une table, je peux facilement créer une table avec Importation en bloc. Y a-t-il un moyen plus simple? EG, je veux faire une requête comme:Créer un ensemble à partir de valeurs CSV dans TSQL

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

Répondre

1

Je vous conseille d'utiliser this UDF pour analyser votre liste dans une table. Ensuite, vous devriez être en mesure de faire ce qui suit:

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

Vous avez une erreur de syntaxe - l'instruction 'INTO' doit précéder' FROM' –

+0

Merci pour cela. J'ai corrigé quelques erreurs de syntaxe pour vous. C'est bien, mais ça ne semble pas bien jouer avec les retours à la ligne dans la chaîne, donc c'est un peu difficile de coller à partir d'une colonne Excel. – RossFabricant

+0

Merci Ed. Fixé. @rossfabricant - Je pourrais voir la nouvelle ligne causant des problèmes. Pourriez-vous faire un peu de nettoyage sur votre fichier csv avant de dépasser les valeurs séparées par des virgules dans votre requête? Si vous avez Notepad ++ ce lien pourrait vous aider à accomplir ceci: http://notepad-plus.sourceforge.net/uk/newlineFindReplace-HOWTO.php –

1

, j'ai utilise également la colonne supplémentaire dans Excel avec tas de commandes CONCATENATE.TEXT pour créer les instructions INSERT. Cette colonne seule, copiée dans le fichier texte, est votre script!

+0

Merci, bonne idée. Cependant, il serait plus facile de pouvoir utiliser une formule plus simple ou aucune formule lors de la copie à partir d'Excel. – RossFabricant

Questions connexes