1. 程式人生 > >SQL SERVER NULL值和連線注意問題

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值,返回的是未知,所以不會返回資料。這是在連線查詢時候切記。