Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Utilizzo della pericolosa clausola IN in SQL

Come mai? Perché è spesso utile per poter fare riferimento alle colonne della query esterna nelle sottoquery. Non c'è alcuna impostazione che puoi utilizzare per disattivare questo comportamento, ma se prendi l'abitudine di usare gli alias, dovresti evitare la maggior parte dei problemi con esso:

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

Verrà generato un errore.