如下的SQL語(yǔ)句:SELECT ID, LastModified, (SELECT TOP 1 WorkType FROM [Works] WHERE StartTime >= (Dateadd(hour, 16, (SELECT TOP 1 StartTime FROM [Logs] WHERE Number = T.Number ORDER BY T.[LastModified],ID)) ORDER BY [LastModified] DESC, ID) AS WorkTypeFROM [MyTable] AS TWHERE ID IN ( 5716, 5715, 5714, 5713, 5712, 5711, 5710, 5709, 5708)該語(yǔ)句的執(zhí)行結(jié)果,子查詢?nèi)〉玫腤orkType字段是有正確的值的,但是,如果刪除條件中的部分ID,比如刪除5712之后的ID,再執(zhí)行,本來(lái)應(yīng)該有值的記錄,WorkType卻為空值了。按說(shuō),SQL中的條件只會(huì)影響取到的記錄數(shù)量,不會(huì)影響子查詢的值呀。這是怎么回事?能否有人給我解惑?多謝了
1 回答

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
按照SQL 語(yǔ)句的執(zhí)行順序,select子句是最后執(zhí)行的,應(yīng)該是where子句影響你的查詢結(jié)果