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值,返回的是未知,所以不会返回数据。这是在连接查询时候切记。





  • 相关阅读:
    森林 BZOJ 3123
    calc BZOJ 2655
    修路 BZOJ 4774
    无聊的计算器【数论多合一】
    矩阵乘法 BZOJ 2738
    K大数查询 BZOJ 3110
    发展城市 BZOJ 3700
    降雨量 BZOJ 1067
    chrome中showModalDialog解决方案
    MFC webbrowser读取文档的meta分析
  • 原文地址:https://www.cnblogs.com/xiongnanbin/p/c45a6730ad9a21cc487a27a28f7a6bbc.html
Copyright © 2011-2022 走看看