• <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精品久久久久久野外| 久久久精品国产亚洲成人满18免费网站 | 久久精品国产欧美日韩99热| 青青草原综合久久| 91麻精品国产91久久久久| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久天天躁夜夜躁狠狠躁2022| 伊人色综合久久天天人守人婷| 亚洲色欲久久久久综合网| 日韩美女18网站久久精品| 性高朝久久久久久久久久| 一本久久a久久精品综合香蕉| 一本久道久久综合狠狠躁AV| 久久精品国产久精国产果冻传媒| 精品国产乱码久久久久久呢 | 久久综合日本熟妇| 无码8090精品久久一区| 久久精品国产日本波多野结衣| 精品国产乱码久久久久软件| 色妞色综合久久夜夜| 久久青青草原亚洲av无码app| 99久久成人国产精品免费| 成人亚洲欧美久久久久| 久久久WWW成人| 精品多毛少妇人妻AV免费久久 | 奇米综合四色77777久久| 天天爽天天狠久久久综合麻豆| 国产精品久久久久久福利69堂| 狠狠色综合网站久久久久久久| 青青青青久久精品国产h久久精品五福影院1421| 久久综合九色综合久99| 国产69精品久久久久久人妻精品| 国产精品久久久久久福利漫画| 久久精品无码免费不卡| 亚洲国产视频久久| 久久777国产线看观看精品| 伊人久久无码精品中文字幕| 国产人久久人人人人爽| 亚洲伊人久久成综合人影院| 色婷婷综合久久久久中文|