CREATE TABLE T1 (ID INT ,ID1 INT); INSERT INTO T1 VALUES(1,NULL); INSERT INTO T1 VALUES(NULL,NULL); INSERT INTO T1 VALUES(2,2); COMMIT; --实际上有三条记录,包括两个字段都为空的记录 admin@ORCL> SELECT * FROM T1; ID ID1 ---------- ---------- 1 NULL 2 2 NULL NULL admin@ORCL> SELECT COUNT(*) FROM T1; COUNT(*) ---------- 3 admin@ORCL> SELECT COUNT(ID) FROM T1; COUNT(ID) ---------- 2 admin@ORCL> SELECT COUNT(ID1) FROM T1; COUNT(ID1) ---------- 1 --空值的SUM测试 admin@ORCL> SELECT SUM(ID) FROM T1;--SUM值不考虑空值 SUM(ID) ---------- 3 admin@ORCL> SELECT AVG(ID) FROM T1;--AVG只除以了非为空的记录条数 AVG(ID) ---------- 1.5 admin@ORCL> SELECT SUM(ID1) FROM T1; SUM(ID1) ---------- 2 admin@ORCL> SELECT AVG(ID1) FROM T1;--avg只除以了非空的记录条数 AVG(ID1) ---------- 2 --相加测试,NULL+NOT NULL VALUE = NULL admin@ORCL> SELECT ID+ID1 FROM T1; ID+ID1 ---------- NULL 4 --MAX与MIN测试,最大值和最小值也不包含空 admin@ORCL> select max(ID) from t1; MAX(ID) ---------- 2 admin@ORCL> select min(ID) from t1; MIN(ID) ---------- 1 --排序测试 select * from t1 order by id; admin@ORCL> select * from t1 order by id;--默认是升序,可以看出NULL 默认最大 ID ID1 ---------- ---------- 1 NULL 2 2 NULL NULL admin@ORCL> select * from t1 order by id1; ID ID1 ---------- ---------- 2 2 NULL NULL 1 NULL --加上 NULLS first,将空值设为第一位 admin@ORCL> select * from t1 order by id nulls first; ID ID1 ---------- ---------- 1 2 2 --distinct会包含null admin@ORCL> select distinct id from t1; ID ---------- 1 2
?