在開發的過程中,遇到過not in 始終查詢不到數據問題
select * from T_CustomerInfo where CustomerID not in (select CustomerID from T_OrderInfo)
后來使用not exists查詢
select * from T_CustomerInfo a where not exists (select CustomerID from T_OrderInfo where CustomerID=a.CustomerID)
數據全部都查詢出來了
查看數據,發現T_OrderInfo表中有一條數據中CustomerID為null
進行修改
select * from T_CustomerInfo where CustomerID not in (select isnull(CustomerID,NEWID()) from T_OrderInfo)
這個時候就可以查詢出數據
可以發現not in 遇到null就無效了
對in進行調查
select * from T_Task where ID in (select FlowID from T_TaskRecordDetail)
發現即使T_TaskRecordDetail中FlowID為null,也是可以查詢出不為null的數據的
