SQL Server NULL整数到使用ISNULL的空字符串

Ahz*_*Ahz 5 sql t-sql sql-server string isnull

我的好奇心总是得到我最好的满足,我在网上搜索了对此的解释,但一无所获(可能是因为我没有使用正确的术语。)

有人可以解释一下为什么执行以下命令时SQL Server返回零(0)而不是空字符串('')的原因。

    DECLARE @I AS INT
    SET @I = NULL
    SELECT ISNULL(@I, '') -- 0
Run Code Online (Sandbox Code Playgroud)

hun*_*nch 4

正如此处所声明的,第二个参数ISNULL是 replacement_value,它“必须是可隐式转换为 check_expresssion 类型的类型”。隐式转换''INT0 结果。