sql 条件用空值进行比对的结果
select SUM(e.Qty) as InputQty
from UT_InputInfo as a
inner join T_ProcessDef as b
on a.ProcessID=b.ProcessID
inner join UT_PrdTask as d
on a.OrderID=d.OrderID
inner join dbo.UT_LabelInfoRec as e
on a.LabelPrtRecID=e.PrtRecID
inner join UT_PrdTask as h
on e.OrderID=h.OrderID
and a.OrderID=@OrderID and e.BIN=@BIN and a.EqNo=@EqNo AND a.SpecialType=@SpecialType
and e.EntryEqNo <> @EqNo --投入数去除同机台打印出来的标签
--EntryEqNo为null的时候会让查询结果为空
使用 NULL 值进行比较时,因为 NULL 在 SQL 中表示未知值,因此任何与 NULL 进行的比较都会返回 UNKNOWN,而不是 TRUE 或 FALSE
如果 EntryEqNo 是 NULL 时,比较操作会返回 UNKNOWN,因此不会返回记录。
将and e.EntryEqNo <> @EqNo
改成AND COALESCE(e.EntryEqNo, '') <> @EqNo;
将NULL 值转换为空字符串就能避免这个情况了