大家先看下面一个小例子
A表的a字段:
A.a:varchar(8) = null;
B表的b字段:
B.b:varchar(10) = 1234567890;
执行 ISNUL(A.a,B.b) as test
那么上面sql返回的结果是什么呢?大家是不是认为是“1234567890”
哈哈,“1234567890”结果是不对的,正确的结果是“12345678”
结论:
使用sqlserver的ISNULL函数的时候,如果满足下面2个情况
・第一个参数的在表里面定义的位数和第二个参数在表里面定义的位数不一致,并且第二个参数的位数大于第一个参数的位数
・第一个参数是NULL
那么,返回结果肯定和第一个参数定义的位数为准。