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
。
网友评论