Using CASE for WHERE field IN
问题 The following is not a "correct way" to do it, but rather a demonstration for what I'm trying to achieve: SELECT [...] FROM [...] WHERE condition1 AND condition2 AND field IN CASE (@type) WHEN 1 THEN (SELECT subquery #1) WHEN 2 THEN (SELECT subquery #2) WHEN 3 THEN (SELECT subquery #3) END Meaning, I want a different sub-query for each different value for the parameter @type . What would be a good way to do it? 回答1: Try this SELECT [...] FROM [...] WHERE condition1 AND condition2 AND ((@type