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

             

            久久男人中文字幕资源站| 久久精品中文字幕第23页| 久久天天躁狠狠躁夜夜2020一| 中文字幕无码久久人妻| 亚洲午夜无码久久久久| 18岁日韩内射颜射午夜久久成人| 久久免费视频观看| 国产精品美女久久福利网站| 蜜臀av性久久久久蜜臀aⅴ麻豆| 999久久久国产精品| 午夜不卡久久精品无码免费| 日本免费久久久久久久网站| 无码人妻久久一区二区三区蜜桃 | 亚洲国产成人久久综合野外| 伊人色综合久久天天人手人婷| 久久精品这里热有精品| 精品国产乱码久久久久久呢| 国产成人无码精品久久久久免费| 久久AV高潮AV无码AV| 久久久久久噜噜精品免费直播| 91久久精品91久久性色| 亚洲欧美伊人久久综合一区二区 | 久久91精品国产91久久户| 久久午夜免费视频| 久久夜色撩人精品国产| 91精品国产91久久| 激情伊人五月天久久综合| 久久成人小视频| 亚洲国产精品成人AV无码久久综合影院 | 久久久一本精品99久久精品88| 久久美女网站免费| 久久精品国产一区二区三区日韩| 亚洲第一极品精品无码久久 | 99久久精品国产高清一区二区| 精品久久亚洲中文无码| 国产69精品久久久久9999APGF| 久久久久久免费视频| 久久婷婷五月综合色奶水99啪 | 思思久久99热免费精品6| 久久精品国产一区二区| 久久午夜福利电影|