thể trùng lặp:
Column does not exist in the IN clause, but SQL runsTại sao mã SQL này không tạo ra lỗi?
tôi stumbled khi ngày hôm nay trong khi tại nơi làm việc ngày hôm nay và tôi đã tự hỏi, tại sao nó rằng mã sau đây không tạo ra và báo lỗi?
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)
Output:
ColumnA
1
2
3
columnA không tồn tại trên #TableB, làm thế nào mà không có lỗi được tạo ra?
@@ VERSION nói với tôi Tôi đang chạy này trong:
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)
sử dụng bí danh 'SELECT * TỪ #TableA Một ĐÂU A.ColumnA TRÊN (SELECT B.ColumnA TỪ #TableB B) 'và kiểm tra lỗi –
Đã trả lời, xem tại đây: http://stackoverflow.com/ câu hỏi/5076906/cột-không-không tồn tại-in-the-in-khoản-nhưng-sql-chạy –