已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软 件 学 院关于oracle的空值问题及解决方法专业班级: 学 号: 姓 名: 关于oracle空值的解决方法一、引言在做“查询年工资(sal+comm)*125000”的练习题时,发现查询结果并不全面,因为有的员工的comm为空,导致查询结果并不全面(comm为空的行并未显示)。经过上网查找资料及亲自验证,确认使用函数nvl(comm,0)可解决该问题。二、空值的生成及特点1. 空值的生成 如果一列没有非空(NOT NULL)完整性限制,那么其缺省的值为空值,即如果插入一行时未指定该列的值,则其值为空值。 使用SQL语句INSERT插入行,凡未涉及到的列,其值为空值;涉及到的列,如果其值确实为空值,插入时可以用NULL来表示(对于字符型的列,也可以用来表示)。2. 空值的特点空值没有任何值与 0、空字符串或空格不同。在where条件中, Oracle认为结果为NULL的条件为FALSE带有这样条件的select语句不返回行并且不返回错误信息。但NULL和FALSE是不同的。空值在排序时比其他数据都大并且空值不能索引。三、遇到的问题输入命令SQL select * from emp;的结果如图1-1所示。 图1-1 查询员工表结果输入SQL select ename,sal,comm from emp where(sal+comm)*125000;查询员工年工资的结果如图1-2所示。图1-2 查询员工年工资结果输入SQL select ename,sal,comm from emp where sal2000; 查询月工资大于2000的员工,可看出该类员工的年工资均大于5000,但在上一个查询语句的结果中并没有显示他们,结果如图1-3所示。图1-3 查询员工工资大于2000的结果四、 解决方案及示例运用函数nvl(comm,0)可解决空值的问题,nvl(comm,0)表示当comm为空值的时候,将其赋值为0,这样再次查询员工年工资的时候,得到的结果就全面了。下面用命令行的方式一步步显示解决方法:SQL select * from emp; /查看emp的表结构 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO - - - - - - - - 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 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 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 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 已选择14行。SQL conn sys/Oracle11 as sysdba;已连接。SQL grant global query rewrite to scott; /授权授权成功。SQL grant create any index to scott;授权成功。SQL conn scott/admin;已连接。SQL create index sal_comm on emp (sal+comm)*12,sal,comm) tablespace users; /创建基于函数的索引索引已创建。SQL select ename,sal,comm f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学健美操课备课讲稿教案
- 书法教案第课收锋撇共页
- 图形分类文档教案
- 鼎尖小学语文四年级上册教案
- 尼麦角林注射液在新型药物组合疗法中的药代动力学评估-洞察及研究
- 教师班级管理与心理辅导方案
- 2025广西来宾市兴宾区石陵供销合作社招聘出纳1人参考笔试题库及答案解析
- 机器学习驱动的客户分群与精准营销-洞察及研究
- 个人劳务分包合同范本合集
- 饮料产品代理合同样本及风险防控指南
- 养殖业垂直一体化经营模式指南
- 【《基于MATLAB的3kW三相交错boost变换器仿真研究》12000字(论文)】
- 家庭社会法制课件
- 6.2 第2课时 四分位数与箱线图 分层练习(含答案)数学北师大版(2024)八年级上册
- 2025继续教育人工智能试题及答案
- 基于python的短视频平台用户行为分析系统
- 学堂在线 R语言数据分析 期末测试答案
- 胖东来课件教学课件
- 1.1公有制为主体+多种所有制经济共同发展+课件-2024-2025学年高中政治统编版必修二经济与社会
- 工程装备维修课件
- 业主委员会备案申请表
评论
0/150
提交评论