<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      SQL三值謂詞邏輯

      2012-01-09 20:34  海不是藍  閱讀(1055)  評論(2)    收藏  舉報

      NULL

      SqlNULL值表示缺失的值。它使用的是三值謂詞邏輯。

      三值謂詞邏輯

      平時我們都是習慣使用二值邏輯(TRUEFALSE)來進行思考,二值邏輯的計算結果不是TRUE就是FALSE。但是SQL中涉及到了NULL值,那么TRUEFALSE就不夠用了,這個時候二值邏輯已經不能支持NULL的出現。所以三值謂詞邏輯就登場了。

       

      定義

      TRUEFALSENULL(UNKNOWN),如果邏輯表達式只涉及已經存在的值時,那么最終的計算結果要么為TRUE,要么為FALSE,但是當邏輯表達式涉及缺少的值時,其計算結果就是UNKNOWN

      實際存在的值和NULL做比較,得到的結果是UNKNOWN

      *接受TRUE,拒絕FALSEUNKNOWN

      *拒絕FALSE,接受TRUEUNKNOWN

       

      看個示例:

      select * from Test where age>12

      這里只接受age大于12的列,拒絕那些age小于12或者age等于NULL的列。

      age=NULL的時候,NULL>12計算的結果是UNKNOWN

      age<12或者=12都是同理。

       

      補充:

      UNKNOWN取反仍然是UNKNOWN

      5>10=TRUE5<10=FALSE

      5>NULL OR 5<NULL OR 5=NULL 都是UNKNOWN

       

      表達式

      接受的列

      拒絕的列

      Age>10

      Age>10=TRUE的列

      Age<=10Age=NULL的列

      Age<10

      Age<10=TRUE的列

      Age>=10Age=NULL的列

      Age=10 OR >= <= <> 原理同上,接受TRUE,拒絕FALSEUNKNOWN

       

       

      特別介紹 EXISTSIN

       

       

      ===EXISTSIN之間的區別===

      1.EXISTS只返回TRUEFALSE,不會返回UNKNOWN

      2.IN當遇到包含NULL的情況,那么就會返回UNKNOWN

       

       

      重點:

      當查詢的列包含NULL時,NOT EXISTS正常返回TRUEFALSE

      NOT IN可能返回空集,如下

      1val IN(val1,val2,...,NULL),永遠不會返回FALSE,而是返回TRUEUNKNOWN

      2val NOT IN(val1,val2,...,NULL),永遠不會返回TRUE,而是返回NOT TRUENOT UNKNOWN

       

       

      看個示例:

      Test

      Test1

      select t.[name] from Test as t

      where  exists (select t1.orderid from Test1 as t1 where t1.[name]=t.[name])

      返回 aaa,ccc,ddd

       

      select t.[name] from Test as t

      where  t.[name] in  (select t1.[] from Test1 as t1)

      返回 aaa,ccc,ddd

       

      select t.[name] from Test as t

      where  not exists (select t1.orderid from Test1 as t1 where t1.[name]=t.[name])

      返回 bbb

       

      select t.[name] from Test as t

      where  t.[name] not in  (select t1.[name] from Test1 as t1)

      返回空集

       

       

      運算符

      返回值

      a IN (a,b)

      TRUE

      a IN (b,c)

      FALSE

      a NOT IN (a,b)

      FALSE

      a NOT IN (b,c)

      TRUE

      a IN (a,b,NULL)

      TRUE

      a IN (b,c,NULL)

      UNKNOWN

      a NOT IN (a,b,NULL)

      UNKNOWN

      a NOT IN (b,c,NULL)

      UNKNOWN

      a EXISTS(a,b)

      TRUE

      a EXISTS(b,c)

      FALSE

      a NOT EXISTS(a,b)

      FALSE

      a NOT EXISTS(b,c)

      TRUE

      a EXISTS(a,b,NULL)

      TRUE

      a EXISTS(b,c,NULL)

      FALSE

      a NOT EXISTS(a,b,NULL)

      FALSE

      a NOT EXISTS(b,c,NULL)

      TRUE

       

       
      主站蜘蛛池模板: 洞口县| 日本伊人色综合网| 国产成AV人片久青草影院| 久久精品蜜芽亚洲国产AV| 国产网友愉拍精品视频| 国产盗摄视频一区二区三区| 国产精品综合色区av| 中文字幕一区二区人妻| 国产午夜精品在人线播放| 中文午夜乱理片无码| 蜜臀av久久国产午夜| 国产无码高清视频不卡| 伊人久久综合无码成人网| 亚洲国产免费图区在线视频| 国产婷婷色一区二区三区| 日韩一区二区黄色一级片| 亚洲成人资源在线观看| 福利一区二区在线视频| 欧美人禽zozo动人物杂交| 丝袜人妻一区二区三区网站| 国产精品成熟老女人| 无码va在线观看| 精品视频一区二区三区不卡 | 国产精品国产三级国av| 都江堰市| 最近中文字幕日韩有码| 男女18禁啪啪无遮挡激烈网站 | 色综合久久精品中文字幕| 亚洲AV乱码毛片在线播放| 国产乱码精品一区二区三| 色九月亚洲综合网| 日韩人妻一区中文字幕| 亚洲天堂网中文在线资源| 国内自拍av在线免费| 国产日韩精品欧美一区灰| 色综合色综合久久综合频道88| 亚洲精品揄拍自拍首页一| 乱色老熟妇一区二区三区| 国产精品高清一区二区三区| 久久精品国产亚洲av麻| 饶阳县|