Eventuali duplicati:
Column does not exist in the IN clause, but SQL runsPerché questo codice SQL non genera un errore?
ho inciampato su questo oggi, mentre al lavoro oggi e mi chiedevo, perché è che il seguente codice non genera e l'errore?
CREATE TABLE #TableA (ColumnA VARCHAR(25))
CREATE TABLE #TableB (ColumnB VARCHAR(25))
INSERT INTO #TableA (ColumnA) VALUES('1')
INSERT INTO #TableA (ColumnA) VALUES('2')
INSERT INTO #TableA (ColumnA) VALUES('3')
INSERT INTO #TableB (ColumnB) VALUES('1')
SELECT *
FROM #TableA
WHERE ColumnA IN(SELECT ColumnA FROM #TableB)
uscita:
ColumnA
1
2
3
ColumnA non esiste #TableB, come mai non viene generato alcun errore?
@@ VERSION mi dice che corro questo:
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (VM)
uso alias 'SELECT * FROM #TableA Un DOVE A.ColumnA IN (SELECT B.ColumnA FROM #TableB B)' e controllare gli errori –
già risposto, vedi qui: http://stackoverflow.com/ questions/5076906/column-does-not-exist-in-the-in-clause-but-sql-runs –