缺省值问题

作者: ProgrammingGuy | 来源:发表于2018-11-18 16:09 被阅读2次
    SELECT * FROM STUDENT
    1101        王燕          0   20  北京          工程系         NULL
    1202        李波          1   21  上海          计算机系        NULL
    1203        陈建          1   19  长沙          计算机系        NULL
    1303        张斌          1   22  上海          经管系         NULL
    1304        刘宏          1   20  NULL    计算机系        NULL
    
    SELECT COUNT(*) FROM STUDENT
    5
    
    SELECT * FROM STUDENT WHERE LOCATION = '上海'
    1202        李波          1   21  上海          计算机系        NULL
    1303        张斌          1   22  上海          经管系         NULL
    
    SELECT COUNT(*) FROM STUDENT WHERE LOCATION = '上海'
    2
    
    SELECT COUNT(*) FROM STUDENT WHERE LOCATION != '上海'
    1101        王燕          0   20  北京          工程系         NULL
    1203        陈建          1   19  长沙          计算机系        NULL
    
    SELECT COUNT(*) FROM STUDENT WHERE LOCATION != '上海'
    2
    
    SELECT * FROM STUDENT WHERE LOCATION != '上海' OR LOCATION = '上海'
    1101        王燕          0   20  北京          工程系         NULL
    1202        李波          1   21  上海          计算机系        NULL
    1203        陈建          1   19  长沙          计算机系        NULL
    1303        张斌          1   22  上海          经管系         NULL
    
    SELECT COUNT(*) FROM STUDENT WHERE LOCATION != '上海' OR LOCATION = '上海'
    4
    
    SELECT * FROM STUDENT EXCEPT (SELECT * FROM STUDENT WHERE LOCATION = '上海' OR LOCATION != '上海')
    1304        刘宏          1   20  NULL    计算机系        NULL
    

    可以看出,对NULL的计算并不遵循TRUE OR FALSE原则,因为对NULL进行的比较操作返回的结果为UNKNOWN。所以所有元素的并集条件应该为[ELEMENT] = [SOMETHING] OR [ELEMENT] != [SOMETHING] OR [ELEMENT] IS NULL

    相关文章

      网友评论

        本文标题:缺省值问题

        本文链接:https://www.haomeiwen.com/subject/dpjgfqtx.html