A seconda del motore di database in uso, possono esserci dei limiti alla lunghezza di un'istruzione.
SQL Server ha un limite molto grande:
http://msdn.microsoft.com/en-us/library/ms143432.aspx
ORACLE ha un limite molto facile da raggiungere dall'altra parte.
Quindi, per clausole IN di grandi dimensioni, è meglio creare una tabella temporanea, inserire i valori ed eseguire un JOIN. Funziona anche più velocemente.