IsNull()关于bigint的最小值?

Voo*_*ild 4 sql t-sql sql-server

为什么SQL Server中的以下表达式返回-9223372036854775808而不是123

我从存储过程中调用它,我无法传递null参数

declare @t bigint;
set @t = -9223372036854775808;  --min value for bigint / long
select ISNULL(@t, 123)
Run Code Online (Sandbox Code Playgroud)

OMG*_*ies 11

因为:

IF @t IS NOT NULL
  PRINT @t
ELSE
  PRINT 123
Run Code Online (Sandbox Code Playgroud)

否定并不意味着值为NULL.NULL是缺少任何值的.