Sql server 在SQL Server、Oracle和informatica中加入null

Sql server 在SQL Server、Oracle和informatica中加入null,sql-server,oracle,informatica,Sql Server,Oracle,Informatica,我有两个表要用一个列连接,比如emp_id。。如果两个表中的emp_id都有空值,SQL Server和Oracle将如何处理 因为,我读到informatica在连接时会忽略空行..如果我处理空行,通过替换-1,将发生我不希望的交叉连接 我能在这里做什么 我不能完全忽略具有NULL的行 谢谢您不能在colA=colB上加入并期望null值相等。根据您的需要,假设可能需要某种表格同步,我可以想到以下三种方法: 如果存在实际数据中永远不会出现的合适值,请使用COALESCE替换-1等值来代替nul

我有两个表要用一个列连接,比如emp_id。。如果两个表中的emp_id都有空值,SQL Server和Oracle将如何处理

因为,我读到informatica在连接时会忽略空行..如果我处理空行,通过替换-1,将发生我不希望的交叉连接

我能在这里做什么

我不能完全忽略具有NULL的行


谢谢

您不能在colA=colB上加入并期望null值相等。根据您的需要,假设可能需要某种表格同步,我可以想到以下三种方法:

如果存在实际数据中永远不会出现的合适值,请使用COALESCE替换-1等值来代替null。聚结表1.colA,-1=聚结表2.colB,-1 对所有连接列同时使用IS NULL和相等检查。 “使用相交Null”将被视为相等。可能位于可以重新联接到的派生表中。 也许你想要一个左外连接?看

下面是你如何使用它的


这是左侧外部联接的示例。

您想对具有空值的行执行什么操作?只有id列具有空值。所有其他列都具有值,我想要它们是的,但您要联接什么?如果没有,那么请看下面我的答案。重读这个问题后,我认为道格对你的需求的解释可能比我的更为正确,但如果你把你的情景具体化一点,这会有所帮助。我也不理解你的情况。比如说,如果主表中有两行,详细表中有两行,所有四行上的emp_id都为null,那么您希望从连接等式中得到什么?如果我替换-1,会发生交叉连接吗?不会,但效率很低,所以可能不太适合大量的行。你能说明你的情况吗?为什么你需要这样做?我假设您的联接中也会有一些非空列。e、 g.同步一张表的2份副本。如果不是这样的话,你会得到一个交叉连接是的。我没有遇到过这样的现实情况。只是一个疑问。那么,如果ID列的值为null,你会怎么做?通常你的ID列在它的主表中不会为null,因为它可能是唯一标识一行的。如果它在FK表中并且为null,那么null连接到任何东西都没有意义。