[每日一题] OCP1z0-047 :2013-08-29 NULL............................................................168
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10558305
正确答案:B
用函数可以针对各种数据类型时行操作,包括NULL值在内。其中有一类通用函数,是专门针对NULL值的。
1、针对NULL值的通用函数
(1)NVL(表达式1,表达式2): 转换空值为一个实际值。如果表达式1值为空,NVL将返回表达式2的值作为结果。如果表达式1
不为空,以表达式1的值作为结果。
这个函数在有些时候非常有用,在很多应用程序中,都要把空当作0处理,这利用NVL是容易实现的:
gyj@OCM> select name,salary,nvl(salary,0) from t1;
NAME SALARY NVL(SALARY,0)
---------- ---------- -------------
gyj2 8000 8000
gyj3 10000 10000
gyj4 15000 15000
gyj8 0
2)NVL2 (表达式1,表达式2,表达式3)
此函数比NVL更复杂些。它首先判断表达式1的值,如果表达式1非空,函数返回表达式2的值作为结果。如果表达式1 为空, 返回
表达式3的值为结果。表达式1 可以是任意数据类型、运算式子。
仍以上面的例子为准,将SAL列中为空的转换成0,不为空的不变:
gyj@OCM> select name,salary,nvl2(salary,salary,0) from t1;
NAME SALARY NVL2(SALARY,SALARY,0)
---------- ---------- ---------------------
gyj2 8000 8000
gyj3 10000 10000
gyj4 15000 15000
gyj8 0
(3)NULLIF(表达式1,表达式2)
比较两个表达式,如果相等返回空;如果不相等,返回第一个表达式。
用它可以实现和上面例子中相反的效果。有些应用程序,要求把为0的值显示为空:
gyj@OCM> update t1 set salary=0 where id=5;
1 row updated.
gyj@OCM> commit;
Commit complete.
gyj@OCM> select id,name,nullif(salary,0) from t1;
ID NAME NULLIF(SALARY,0)
---------- ---------- ----------------
2 gyj2 8000
3 gyj3 10000
4 gyj4 15000
5 gyj5
7 gyj7 12000
nullif(sal,0),就是将SAL为0的转变为空。NVL和NVL2是将为空的转变成其他不是空的值。
(4)COALESCE(表达式1,表达式2,表达式3,…………,表达式n)
返回表达式列表中的第一个值为非空的表达式的值。
它可以实现和NVL一样的功能,而且它的功能比NVL强。如果用它来实现将NULL转为0的操作,方法如下:
gyj@OCM> select id,name,COALESCE(salary,0) from t1;
ID NAME COALESCE(SALARY,0)
---------- ---------- ------------------
2 gyj2 8000
3 gyj3 10000
4 gyj4 15000
5 gyj5 0
7 gyj7 12000
QQ:252803295
学习交流QQ群:
DSI&Core Search Ⅰ 群:127149411(技术:已满)
DSI&Core Search Ⅱ 群:177089463(技术:未满)
DSI&Core Search Ⅲ 群:284596437(技术:未满)
DSI&Core Search Ⅳ 群:192136702(技术:未满)
DSI&Core Search Ⅴ 群:285030382(闲聊:未满)
MAIL:oracledba_cn@hotmail.com
BLOG: http://blog.csdn.net/guoyjoe
WEIBO:http://weibo.com/guoyJoe0218
ITPUB: http://www.itpub.net/space-uid-28460966.html
OCM: http://education.oracle.com/education/otn/YGuo.HTM
[每日一题] OCP1z0-047 :2013-08-29 NULL............................................................168的更多相关文章
- 老男孩教育每日一题-2017年3月29日-使用ifconfig取出网卡eth0的ip地址-看看你有多少方法...
方法1:sed命令 [root@oldboyedu ~]# ifconfig eth0 |sed -n '2p' |sed's#^.*addr:##g'|sed 's# B.*$##g' 10.0. ...
- 老男孩IT教育-每日一题汇总
老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file….already exists以下错误如何解决? 第122天 2 ...
- PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数
PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数 最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可 ...
- 【Java每日一题】20170106
20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170105
20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170104
20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170103
20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20161230
// 20161229问题解析请点击今日问题下方的"[Java每日一题]20161230"查看(问题解析在公众号首发,公众号ID:weknow619)package Dec2016 ...
- 【Java每日一题】20161229
package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1229 { public s ...
- 【Java每日一题】20161228
package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1228 { public s ...
随机推荐
- Eclipse快捷键 10个最有用的快捷键(转载)
现在很多开发人员都在用eclipse.用开发工具,就是为了方便,方便你开发你的软件,方便你管理你的工程,而开发工具提供各种功能大部分会有对应的快捷键,下面就列出了eclipse的快捷键. Ecli ...
- ThinkPHP - session 数据库存储驱动
命名格式: Session + 驱动名称 + .class.php 所有的方法要有,但不一定要实现. <?php /** * @category Extend * @package Extend ...
- c++隐藏实例
隐藏:是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同.此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆). 很简单略去 ...
- [HDU 1428]--漫步校园(记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1428 漫步校园 Time Limit: 2000/1000 MS (Java/Others) M ...
- 17.1.1.5 Creating a Data Snapshot Using mysqldump 创建一个快照使用mysqldump:
17.1.1.5 Creating a Data Snapshot Using mysqldump 创建一个快照使用mysqldump: 创建一个数据快照的方式是使用mysqldump 工具来备份所有 ...
- 基于visual Studio2013解决C语言竞赛题之0524职工年龄
题目
- XML(三)
使用 XSLT 显示 XML -------------------------------------------------------------------------------- 通 ...
- Log4Net五步走
本文不是教你全面了解log4net,本文只是希望教会你按步就班,照糊芦画瓢般就会用log4net1,引入log4net.dll组件2,建立一个配置文件两种方法,一种是在Web.Config或App.C ...
- PAD会取代PC吗
公司上了新的内部管理系统,上线一片混乱,群里也很热闹,从系统是否应该支持pad谈起 ,有技术大佬说5年内就是pad时代了,pad将完全取代pc.我不知道大佬从何得出这个结论,有和数据支撑.我的观点是, ...
- 让你的 Qt 桌面程序看上去更加 native(一共六篇)
<让你的 Qt 桌面程序看上去更加 native>是一个系列文章.在这个系列中,你将会了解到如何让你的 Qt 桌面应用程序看上去更加 native.这里,我假设你已经清楚如何使用 Qt 编 ...