Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Est-il possible d'utiliser des paramètres de requête pour remplir le mot-clé IN

Vous pouvez transmettre la liste des GUID en tant que paramètre de chaîne séparée par des virgules et utiliser un UDF de table pour les diviser en une table à utiliser dans votre IN clause :

SELECT *
FROM my_table
WHERE id IN (SELECT id FROM dbo.SplitCSVToTable(@MyCSVParam))

Erland Sommarskog a un article intéressant avec des exemples de fractionnement de chaînes séparées par des virgules dans des tables à l'aide d'une UDF.

(Pour des raisons de performances, vous devez vous assurer que votre UDF est une valeur de table en ligne, plutôt qu'une multi-instruction.)