How do I parameterize a query containing an IN clause with a variable number of arguments, like this one?
SELECT * FROM Tags WHERE Name IN ('ruby','rails','scruffy','rubyonrails') ORDER BY Count DESC
In this query, the number of arguments could be anywhere from 1 to 5.
I would prefer not to use a dedicated stored procedure for this (or XML), but if there is some elegant way specific to SQL Server 2008, I am open to that.
Here’s a quick-and-dirty technique I have used:
So here’s the C# code:
Two caveats:
LIKE '%...%'queries are not indexed.|, blank, or null tags or this won’t workThere are other ways to accomplish this that some people may consider cleaner, so please keep reading.