博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL中的null值
阅读量:5922 次
发布时间:2019-06-19

本文共 17674 字,大约阅读时间需要 58 分钟。

 1.  包含null的表达式都为null

 2.  null永远!=null

 3.  如果集合中含有null,不能使用not in; 但可以使用in

 4.  null的排序,null值最大

 5. 组函数(多行函数)自动滤空;可以嵌套滤空函数 来屏蔽他的滤空功能

示例如下:

SQL> /*SQL> SQL中的null值:SQL> 1. 包含null的表达式都为nullSQL> 2. null永远!=nullSQL> */SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)  2  from emp;     EMPNO ENAME      SAL     SAL*12       COMM SAL*12+NVL(COMM,0)                                                                                    ---------- -------- ----- ---------- ---------- ------------------                                                                                          7369 SMITH      800       9600                          9600                                                                                          7499 ALLEN     1600      19200        300              19500                                                                                          7521 WARD      1250      15000        500              15500                                                                                          7566 JONES     2975      35700                         35700                                                                                          7654 MARTIN    1250      15000       1400              16400                                                                                          7698 BLAKE     2850      34200                         34200                                                                                          7782 CLARK     2450      29400                         29400                                                                                          7788 SCOTT     3000      36000                         36000                                                                                          7839 KING      5000      60000                         60000                                                                                          7844 TURNER    1500      18000          0              18000                                                                                          7876 ADAMS     1100      13200                         13200
SQL> --2. null永远!=nullSQL> --查询奖金为null的员工SQL> select *  2  from emp  3  where comm=null;未选定行SQL> select *  2  from emp  3  where comm is null;     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   ---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                         7369 SMITH    CLERK           7902 17-12月-80       800                    20                                                                         7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                                                         7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                                                         7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                                                         7788 SCOTT    ANALYST         7566 19-4月 -87      3000                    20                                                                         7839 KING     PRESIDENT            17-11月-81      5000                    10                                                                         7876 ADAMS    CLERK           7788 23-5月 -87      1100                    20                                                                         7900 JAMES    CLERK           7698 03-12月-81       950                    30                                                                         7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                                                         7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                                                   已选择 10 行。

 

 

 

 

SQL> --null 值 3. 如果集合中含有null,不能使用not in; 但可以使用inSQL> ed已写入 file afiedt.buf  1  select *  2  from emp  3* where deptno not in (10,20,null)SQL> /未选定行SQL> ed已写入 file afiedt.buf  1  select *  2  from emp  3* where deptno in (10,20,null)SQL> /     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   ---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                         7369 SMITH    CLERK           7902 17-12月-80       800                    20                                                                         7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                                                         7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                                                         7788 SCOTT    ANALYST         7566 19-4月 -87      3000                    20                                                                         7839 KING     PRESIDENT            17-11月-81      5000                    10                                                                         7876 ADAMS    CLERK           7788 23-5月 -87      1100                    20                                                                         7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                                                         7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                                                   已选择 8 行。

 

SQL> --null值  4. null的排序SQL> select * from emp order by comm;     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   ---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                         7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                                                         7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                                                         7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                                                         7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                                                         7788 SCOTT    ANALYST         7566 19-4月 -87      3000                    20                                                                         7839 KING     PRESIDENT            17-11月-81      5000                    10                                                                         7876 ADAMS    CLERK           7788 23-5月 -87      1100                    20                                                                         7900 JAMES    CLERK           7698 03-12月-81       950                    30                                                                         7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                                                         7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                                                         7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                                                        EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   ---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                         7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                                                         7369 SMITH    CLERK           7902 17-12月-80       800                    20                                                                         7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                                                   已选择 14 行。SQL> set pagesize 20SQL> /     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   ---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                         7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                                                         7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                                                         7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                                                         7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                                                         7788 SCOTT    ANALYST         7566 19-4月 -87      3000                    20                                                                         7839 KING     PRESIDENT            17-11月-81      5000                    10                                                                         7876 ADAMS    CLERK           7788 23-5月 -87      1100                    20                                                                         7900 JAMES    CLERK           7698 03-12月-81       950                    30                                                                         7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                                                         7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                                                         7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                                                         7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                                                         7369 SMITH    CLERK           7902 17-12月-80       800                    20                                                                         7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                                                   已选择 14 行。SQL> ed已写入 file afiedt.buf  1* select * from emp order by comm descSQL> /     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   ---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                         7369 SMITH    CLERK           7902 17-12月-80       800                    20                                                                         7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                                                         7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                                                         7900 JAMES    CLERK           7698 03-12月-81       950                    30                                                                         7876 ADAMS    CLERK           7788 23-5月 -87      1100                    20                                                                         7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                                                         7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                                                         7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                                                         7788 SCOTT    ANALYST         7566 19-4月 -87      3000                    20                                                                         7839 KING     PRESIDENT            17-11月-81      5000                    10                                                                         7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                                                         7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                                                         7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                                                         7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                                                   已选择 14 行。SQL> ed已写入 file afiedt.buf  1  select *   2  from emp   3  order by comm desc  4* nulls lastSQL> /     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   ---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                         7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                                                         7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                                                         7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                                                         7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                                                         7788 SCOTT    ANALYST         7566 19-4月 -87      3000                    20                                                                         7839 KING     PRESIDENT            17-11月-81      5000                    10                                                                         7876 ADAMS    CLERK           7788 23-5月 -87      1100                    20                                                                         7900 JAMES    CLERK           7698 03-12月-81       950                    30                                                                         7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                                                         7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                                                         7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                                                         7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                                                         7369 SMITH    CLERK           7902 17-12月-80       800                    20                                                                         7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                                                   已选择 14 行。SQL> --原因:null值最大

 

 

SQL> --null值 5.组函数(多行函数)自动滤空SQL> select count(*),count(nvl(comm,0)) from emp;  COUNT(*) COUNT(NVL(COMM,0))                                                                                                                                                                           ---------- ------------------                                                                                                                                                                                   14                 14                                                                                                                                                                           SQL> --null值 5.组函数(多行函数)自动滤空;可以嵌套滤空函数 来屏蔽他的滤空功能SQL> host clsSQL> --求每个部门的平均工资SQL> select deptno,avg(sal)  2  from emp  3  group by deptno;    DEPTNO   AVG(SAL)                                                                                                                                                                                   ---------- ----------                                                                                                                                                                                           30 1566.66667                                                                                                                                                                                           20       2175                                                                                                                                                                                           10 2916.66667

 

转载于:https://www.cnblogs.com/dreamHighMjc/p/7339511.html

你可能感兴趣的文章
空指针赋值分区
查看>>
asp.net批量上传图片代码
查看>>
APMServ在服务器上的使用
查看>>
NDK入门
查看>>
【网络挖掘:成就与未来方向】之网络挖掘应用程序与相关概念
查看>>
ARM Cortex-M3 操作模式和特权级别
查看>>
【转】 矩阵分解方法及 在推荐系统中的应用
查看>>
设计模式之Facade---外观模式
查看>>
Heritrix 3.1.0 源码解析(二十二)
查看>>
css的层叠和特殊性小结
查看>>
DXP_protel2004_原理图设计基础_新建和添加原理图库文件_元件编辑范例
查看>>
算法结点图的多源点最短路问题和传递闭包之Floyd-Warshall算法 By ACReaper
查看>>
最大数组连续子向量的最大和
查看>>
如何从DLL或者DEF文件生成LIB文件<转>
查看>>
对象容器Effective STL——容器中所发生的对象拷贝问题
查看>>
C++文件操作
查看>>
androidclassListView的Item含有CheckBox时的处理
查看>>
配置用户组策略环回处理模式
查看>>
.NET:防止并发修改 之 离线悲观锁代码示例(离线悲观锁)
查看>>
PostgreSQL在何处处理 sql查询之三十四
查看>>