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

Utilisation de la dangereuse clause IN dans SQL

Pourquoi? Parce que c'est souvent utile pour pouvoir référencer les colonnes de la requête externe dans les sous-requêtes. Il n'y a aucun paramètre que vous pouvez utiliser pour désactiver ce comportement, mais si vous prenez l'habitude d'utiliser des alias, vous devriez éviter la plupart des problèmes :

select * from #table1 t1
where t1.col1 IN
(select t2.col1 from #table2 t2)

Produira une erreur.