Null是一个很特别的值,既不是0也不是空格.它的值是没有定义,不确定的未知值。 Null 值的运算 AND运算表 True and NULL is NULL False and NULL = False N ULL and NULL is NULL OR运算表 True or NULL = True False or NULL IS NULL NULL OR NULL IS NULL IN运算 select sal from emp where sal not in(800,null); 相当于: select sal from emp where sal!=800 and sal!=null; 所以in中不要有null 计算 NULL值为未知不可以参与计算。如果要做运算,可以用NVL、NVL2、NVLIF函数先置为0 NVL(表达式1,表达式2) 如果表达式1是NULL,则返回表达式2 如果表达式1非NULL,则返回表达式1 表达式1和表达式2可以是数字,字符串,日期格式,1和2的数据类型必须一致 SQL> select ename,job,sal,comm,sal+NVL(comm,0) from emp where ename in ('SMITH','WARD'); ENAME JOB SAL COMM SAL+NVL(COMM,0) ---------- -------