T-SQL not in 遇到 null 暗含的陷阱

下面有两个T-SQL,乍看之下以为是等效的,实际却不是这样

                         SELECT orderid1 ,
                                LocalCost ,
                                supplyGoodsName ,
                                buyersgoodsid ,
                                JSitId ,
                                GSitId
                         FROM   csc_result WITH ( NOLOCK )
                         WHERE  [level] > 0
                                AND orderid1 LIKE '618464266%'
                                AND ( supplygoodsid NOT IN ( 1085317, 1112957 ) )

这里写图片描述

                         SELECT     orderid1,
                                    LocalCost ,
                                    supplyGoodsName ,
                                    buyersgoodsid ,
                                    JSitId ,
                                    GSitId
                          FROM      csc_result WITH ( NOLOCK )
                          WHERE     [level] > 0
                                    AND orderid1 LIKE '618464266%'
                                    AND (supplygoodsid  NOT IN ( 1085317,
                                                              1112957 )
                                                              OR SupplyGoodsId IS NULL)

这里写图片描述

可见not in并不能把null值排除在外

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值