为什么我的插入不过滤掉空值?



我试图通过使用INSERTUPDATE而不是使用MERGE来实现SCD2。我需要从我的源表插入新的行到我的目标表,如果id不存在,同时确保列行compositekey不为空而不崩溃插入。当我运行select查询时,我得到了这个结果:

输出:

<表类>IDnamn哈希compositekeytbody><<tr>1演示222空2以及接下来222202123demo322220空4以及接下来22220434

这取决于TARGET表的内容。如果"compositekey为null"的值不为True,因此INSERT将插入具有NULL值的compositekey。

试着这样做(Where应该在TARGET表中使用UNIQUE列):

插入目标SELECT s.ID, s.namn, s.hash, s.compositekey来源5where (s.ID, s.compositekey) NOT IN(select id, compositekey from target)

;

最新更新