【发布时间】:2010-04-27 18:15:32
【问题描述】:
如果查询/子查询没有找到任何匹配的行,那么它要么返回 NULL,要么根本不返回值,因此甚至不返回 NULL 值。基于 查询/子查询返回 NULL 的条件是什么,什么时候不返回任何结果,甚至不返回 NULL 值?
如果没有,标量子查询是否总是返回 NULL 找到匹配的行?我假设最外部的标量查询也返回 如果没有找到行,则为 NULL?
-
SELECT FirstName, LastName, YEAR(BirthDate) FROM Persons WHERE YEAR(BirthDate) IN (SELECT YearReleased FROM Albums);如果子查询没有找到结果,是外层的WHERE子句 查询翻译成
WHERE YEAR(BirthDate) IN (null);?如果 WHERE 子句被翻译成
WHERE YEAR(BirthDate) IN();,那不应该是一个错误条件,因为YEAR(BirthDate)的值怎么能与空值相提并论?
【问题讨论】:
标签: sql sql-server subquery