• <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
            復制代碼

             

            婷婷久久综合九色综合九七| 精品免费tv久久久久久久| 性高湖久久久久久久久AAAAA| 久久婷婷色香五月综合激情| 久久精品一本到99热免费| 国产毛片久久久久久国产毛片| 无码8090精品久久一区| 久久男人Av资源网站无码软件| 久久久久97国产精华液好用吗| 7777久久久国产精品消防器材| 狠狠色丁香婷婷综合久久来来去| 亚洲综合熟女久久久30p| 久久精品国产一区二区电影| 国产成人久久AV免费| 久久久国产打桩机| 久久99精品久久久久久野外 | 久久夜色精品国产噜噜麻豆| 韩国三级中文字幕hd久久精品| 大伊人青草狠狠久久| 色妞色综合久久夜夜| 狠狠色综合网站久久久久久久高清| 国产精品va久久久久久久| 国产精品9999久久久久| 亚洲乱码精品久久久久.. | 久久久久噜噜噜亚洲熟女综合| 久久青青草原亚洲av无码app| 国产精品99久久久精品无码| 久久亚洲2019中文字幕| 国产成人无码精品久久久免费 | 久久综合88熟人妻| 囯产精品久久久久久久久蜜桃 | 久久精品成人免费国产片小草| 久久久久无码精品国产| 亚洲AV日韩AV永久无码久久| 麻豆成人久久精品二区三区免费 | 久久国产香蕉一区精品| 韩国三级中文字幕hd久久精品| 国产精品热久久毛片| 精品国产一区二区三区久久蜜臀| 久久国产成人亚洲精品影院| 欧美色综合久久久久久|