当前位置: 代码迷 >> SQL >> T-SQL not in 碰到 null 暗含的陷阱
  详细解决方案

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

热度:391   发布时间:2016-05-05 09:41:35.0
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值排除在外

  相关解决方案