Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden der gefährlichen IN-Klausel in SQL

Wieso den? Weil es häufig nützlich ist um Spalten aus der äußeren Abfrage in Unterabfragen referenzieren zu können. Es gibt keine Einstellung, mit der Sie dieses Verhalten ausschalten können, aber wenn Sie sich angewöhnen, Aliase zu verwenden, sollten Sie die meisten Probleme damit vermeiden:

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

Wird einen Fehler erzeugen.