首页 数据库 mysql教程 [每日一题] OCP1z0-047 :2013-08-29 NULL_MySQL

[每日一题] OCP1z0-047 :2013-08-29 NULL_MySQL

Jun 01, 2016 pm 01:30 PM
表达式 通用

bitsCN.com

[每日一题] OCP1z0-047 :2013-08-29 NULL

 

[每日一题] OCP1z0-047 :2013-08-29 NULL_MySQL

 

正确答案:B

 

 

用函数可以针对各种数据类型时行操作,包括NULL值在内。其中有一类通用函数,是专门针对NULL值的。

 

 

1、针对NULL值的通用函数

(1)NVL(表达式1,表达式2): 转换空值为一个实际值。如果表达式1值为空,NVL将返回表达式2的值作为结果。如果表达式1

 

 

不为空,以表达式1的值作为结果。

 这个函数在有些时候非常有用,在很多应用程序中,都要把空当作0处理,这利用NVL是容易实现的:

[html] 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,不为空的不变:

[html] 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的值显示为空:

[html] 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的操作,方法如下:

[html] 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  
登录后复制

 


bitsCN.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何下载适用于通用 PnP 监视器的驱动程序:5 种方法 如何下载适用于通用 PnP 监视器的驱动程序:5 种方法 Apr 21, 2023 pm 08:55 PM

如何下载适用于通用 PnP 监视器的驱动程序:5 种方法

如何在Windows 11个人电脑和笔记本电脑上禁用通用水印? 如何在Windows 11个人电脑和笔记本电脑上禁用通用水印? Apr 21, 2023 pm 02:49 PM

如何在Windows 11个人电脑和笔记本电脑上禁用通用水印?

如何通过 Beta 版立即在 Mac 和 iPad 上获得通用控制 如何通过 Beta 版立即在 Mac 和 iPad 上获得通用控制 Jul 07, 2023 pm 09:49 PM

如何通过 Beta 版立即在 Mac 和 iPad 上获得通用控制

如何解决Python的表达式语法错误? 如何解决Python的表达式语法错误? Jun 24, 2023 pm 05:04 PM

如何解决Python的表达式语法错误?

Microsoft Teams 已针对 Apple Silicon 优化为“通用应用程序”,现已推出测试版 Microsoft Teams 已针对 Apple Silicon 优化为“通用应用程序”,现已推出测试版 Apr 15, 2023 am 08:40 AM

Microsoft Teams 已针对 Apple Silicon 优化为“通用应用程序”,现已推出测试版

在C和C++中,逗号(comma)的用法是用来分隔表达式或语句 在C和C++中,逗号(comma)的用法是用来分隔表达式或语句 Sep 09, 2023 pm 05:33 PM

在C和C++中,逗号(comma)的用法是用来分隔表达式或语句

本田、通用及 Cruise 成立合资企业,计划于 2026 年初在日本推出无人驾驶打车服务 本田、通用及 Cruise 成立合资企业,计划于 2026 年初在日本推出无人驾驶打车服务 Oct 19, 2023 pm 09:21 PM

本田、通用及 Cruise 成立合资企业,计划于 2026 年初在日本推出无人驾驶打车服务

如何在 Mac 和 iPad 上使用通用控制 如何在 Mac 和 iPad 上使用通用控制 Apr 14, 2023 pm 03:31 PM

如何在 Mac 和 iPad 上使用通用控制

See all articles