sqlserver ISNULL两个参数位数不一致的陷阱

大家先看下面一个小例子

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

那么,返回结果肯定和第一个参数定义的位数为准。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值