Duplicar posible:
Column does not exist in the IN clause, but SQL runs¿Por qué este código SQL no genera un error?
me encontré con este día de hoy, mientras que en el trabajo hoy y me preguntaba, ¿cómo es que el siguiente código no genera y error?
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)
Salida:
ColumnA
1
2
3
ColumnA no existe en #TableB, ¿cómo es que no se genera ningún error?
@@ VERSION me dice que estoy quedando esto en:
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 de alias 'SELECT * DE #TableA Un DONDE A.ColumnA IN (SELECT B.ColumnA DE #TableB B)' y comprobar errores –
ya ha respondido, ver aquí: http://stackoverflow.com/ preguntas/5076906/column-does-not-exist-in-the-in-clause-but-sql-runs –