• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            http://www.cnblogs.com/51net/p/4165781.html

            如果下:Table_A表和Table_B表,要求查詢出在Table_A表中不在Table_B表中的記錄。

            復制代碼
            CREATE TABLE [dbo].[Table_A](  [ID] [nchar](10) NULL,  [Name] [nchar](10) NULL ) ON [PRIMARY]  GO  ID          Name 001        張三         002        李四         003        王五                   CREATE TABLE [dbo].[Table_B](  [ID] [nchar](10) NULL,  [Name] [nchar](10) NULL ) ON [PRIMARY]  GO  ID        Name NULL     張三         002       李四         NULL     王五 
            復制代碼

             

            很容大家第一時間相當的寫法是:

            SELECT  * FROM    dbo.Table_A AS a WHERE   a.ID NOT IN ( SELECT    b.ID                       FROM      dbo.Table_B AS b)

            然而查詢出來并沒有達到預期的

            ID    Name
            001  張三        
            003  王五          

            原因很簡單:由于NULL不能進行如何的“操作”

            –如果null參與算術運算,則該算術表達式的值為null。(例如:+,-,*,/ 加減乘除)

            –如果null參與比較運算,則結果可視為false。(例如:>=,<=,<>  大于,小于,不等于)

            –如果null參與聚集運算,則聚集函數都置為null。除count(*)之外。

            --如果在not in子查詢中有null值的時候,則不會返回數據。  (最簡單的解釋請參考下面的評論說明)     

            復制代碼
            --正確寫法                       SELECT  * FROM    dbo.Table_A AS a WHERE   a.ID NOT IN ( SELECT    b.ID                       FROM      dbo.Table_B AS b                       WHERE     b.ID IS NOT NULL ) --排除NULL值參與運算符比較                        --建議修改為關聯查詢方法                                             --正確寫法1              SELECT  * FROM    dbo.Table_A AS a WHERE   NOT EXISTS ( SELECT *                      FROM   dbo.Table_B AS b                      WHERE  a.ID = b.ID ) --正確寫法2                      SELECT  * FROM    dbo.Table_A AS a         LEFT OUTER JOIN dbo.Table_B AS b ON a.ID = b.ID WHERE   b.ID IS NULL
            復制代碼

             

            色综合久久久久综合99| 久久人人爽爽爽人久久久| 久久久久久一区国产精品| 思思久久99热只有频精品66| 久久人妻少妇嫩草AV无码专区| 999久久久免费国产精品播放| 久久久99精品一区二区| 亚洲av伊人久久综合密臀性色| 亚洲国产精品久久久久网站| 99精品国产综合久久久久五月天| 四虎国产精品免费久久5151| 亚洲AV无一区二区三区久久| 久久久噜噜噜久久| 精品免费tv久久久久久久| 亚洲人成精品久久久久| 国产精品九九久久免费视频| 精品无码久久久久久尤物| 国产一区二区久久久| 久久亚洲国产成人影院网站| 久久久国产精品网站| 色偷偷偷久久伊人大杳蕉| 久久国产亚洲精品| 亚洲国产成人久久综合区| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 国产精品99久久精品爆乳| A狠狠久久蜜臀婷色中文网| 精品一二三区久久aaa片| 伊人伊成久久人综合网777| 久久国产综合精品五月天| 亚洲欧美精品伊人久久| 办公室久久精品| 久久精品国产一区二区| 久久精品成人欧美大片| 久久久久亚洲精品天堂久久久久久| AA级片免费看视频久久| 国产免费久久久久久无码| 久久精品国产一区二区| 亚洲午夜久久久| 久久久久亚洲AV无码麻豆| 久久九九亚洲精品| 精品一久久香蕉国产线看播放|