zoukankan      html  css  js  c++  java
  • SQL SERVER NULL值和连接注意问题

    联接表的列中的 null 值(如果有)互相不匹配。如果其中一个联接表的列中出现空值,只能通过外部联接返回这些空值(除非 WHERE 子句不包括空值)。
     
    下面的两个表中,每个表中要参与联接的列中均包含 NULL 值:
    将列 a 中的值与列 c 中的值进行比较的联接在包含 NULL 值的列上不会获得匹配项:
    SELECT
         *
    FROM [dbo].[Table_1] AS a
    INNER JOIN [dbo].[Table_2] AS b
             ON ([a].[a] = [b].[ c ])
    另外,从基表返回的空值与从外部联接返回的空值很难区分开。例如,下面的 SELECT 语句对这两个表执行左向外部联接:
    SELECT
        *
    FROM [dbo].[Table_1] AS a
    LEFT JOIN [dbo].[Table_2] AS b
            ON ([a].[a] = [b].[c])
     
    总结:NULL表示未知,所以在和任何其他值进行匹配时候都是返还的未知,所以在连接查询的时候 ON 条件后返回的是两个表的该记录是否匹配,结果需要true or false,当遇到NULL值,返回的是未知,所以不会返回数据。这是在连接查询时候切记。





  • 相关阅读:
    Lua metatable & metamethod
    lua 中的点、冒号与self
    Eclipse 快捷键
    logging的使用
    URL转义字符
    UnicodeEncodeError: ‘ascii’ codec can’t encode
    Baidu URL的部分参数
    使用JS伪造Post请求
    print 不换行
    exception keynote
  • 原文地址:https://www.cnblogs.com/xiongnanbin/p/c45a6730ad9a21cc487a27a28f7a6bbc.html
Copyright © 2011-2022 走看看