ISNULL和COALESCE虽然相同,但行为可能不同.涉及具有非空参数的ISNULL的表达式被认为是NOT NULL,而涉及具有非空参数的COALESCE的表达式被认为是NULL.
它使用ISNULL或COALESCE确定计算列的可为空性
RowCheckSum AS COALESCE(...)
Run Code Online (Sandbox Code Playgroud)
...表示RowCheckSum列定义包含NULL关键字,和
RowCheckSum2 AS ISNULL(...)
Run Code Online (Sandbox Code Playgroud)
......有NOT NULL定义.
这也意味着,在结果集第一个字段可以返回NULL值,第二个 - 不能.