做网站该读啥学校,网站建设涉及的知识产权,网络推广课程培训,成都思乐网站建设一、NULL处理
#xff08;1#xff09;函数的计算过程
到目前为止#xff0c;您已经学会了在简单语句中应用单行函数。不过#xff0c;函数可以嵌套任意层。所以#xff0c;了解嵌套函数的计算过程非常重要。下例就是一个嵌套函数。其计算过程是从最里层开始计算#xff…一、NULL处理
1函数的计算过程
到目前为止您已经学会了在简单语句中应用单行函数。不过函数可以嵌套任意层。所以了解嵌套函数的计算过程非常重要。下例就是一个嵌套函数。其计算过程是从最里层开始计算直到最外层。SELECT TO_CHAR(NEXT_DAY(ADD_MONTHS(聘用日期, 6),FRIDAY), fmDay, Month DDth, YYYY) AS 下一天计算结果FROM 雇员WHERE 雇员标识100;结果为
Friday, December 18th, 1987SELECT TO_CHAR(NEXT_DAY(ADD_MONTHS(聘用日期, 6),FRIDAY), fmDay, Month DDth, YYYY) AS 下一天计算结果FROM 雇员 WHERE 雇员标识100;
• 步骤 1在聘用日期基础上加上六个月。
• 步骤 2确定聘用日期之后的第一个星期五。
• 步骤 3转换默认的日期格式采用如下格式显示这个星期五Friday, December 18th, 1987在输出结果中这些内容将显示在列名“下一天计算结果”下。2涉及 Null 值的函数在课程开始阶段我们已介绍了“Null”这个术语。您可能还记得Null 就是不可用、未指定、未知或不适用的值。从根本上讲我们无法测试该值是否与其它值一样因为我们不知道它是什么值。它不等于任何值也不等于零Null 不代表任何实际值但这并不意味着它不重要。请想象一下这样的问题X Y 正确吗要回答此问题必须知道 X 和 Y 的值。Oracle 有四个涉及使用null 值的常规函数。这四个函数为
- NVL
- NVL2
- NULLIF- COALESCE二、NVL 函数NVL 函数可以将 null 值转换为固定数据类型日期、字符或数字的已知值。Null 值列和新值的数据类型必须相同。
该 NVL 函数为
NVL (可能包含 null 的值或列, 用以替换 null的值)以下查询使用字符数据类型的 NVL 函数select nvl(注释, 没有注释)
from d_播放列表曲目;
Null 值列和新值的数据类型必须相同如下例所示
nvl(批准的费用金额,0)
nvl(聘用日期,01-JAN-97)
nvl(专业,暂无)可以在进行计算之前使用 NVL 函数将包含null 的列值转换为数字。对 null 执行算术计算时结果为 null。NVL 函数可以在进行算术计算之前将 null 值转换为数字以避免结果为 null。在本示例中D_合作伙伴表中的“批准的费用金额”列包含 null 值。NVL 函数用于在进行算术计算之前将 null 更改为零。
select 名字, 姓氏, nvl(批准的费用金额, 0) * 1.05 as 费用
from d_合作伙伴;三、NVL2 函数 NVL2 函数对包含三个值的表达式求值。如果第一个值不为 null则 NVL2 函数返回第二个表达式。如果第一个值为 null则返回第三个表达式。表达式 1 中的值可以采用任意数据类型。表达式 2 和表达式 3 可以采用 LONG 之外的任意数据类型。返回值的数据类型始终与表达式 2 的数据类型相同除非表达式 2 是字符数据在这种情况下返回值为 VARCHAR2 数据类型。NVL2 函数是NVL2 (可能包含 null 的表达式 1 值, 表达式 1 不是null 时要返回的表达式 2 值, 表达式 1 是 null 时用以替换 null 的表达式 3 值)记忆 NVL2 函数的一个小窍门是“如果表达式 1 具有值则返回替代表达式 2如果表达式 1 是 null则返回替代表达式 3。” 在下面所示的 NVL2 函数中表达式 1 使用数字数据表达式 2和 3 使用字符数据。select 姓氏, 薪金, nvl2(佣金百分比, 薪金 (薪金 * 佣金百分比), 薪金) as 收入
from 雇员;
四、NULLIF 函数
NULLIF 函数对两个函数进行比较。如果它们相等则函数返回null。如果不相等则函数返回第一个表达式。NULLIF 函数为
nullif(表达式 1, 表达式 2)
select 名字, length(名字) 名字长度,姓氏, length(姓氏) 姓氏长度, nullif(length(名字), length(姓氏)) as 比较结果
from d_合作伙伴;五、COALESCE 函数 COALESCE 函数是 NVL 函数的扩展但是COALESCE 函数可以接受多个值。单词“coalesce”的字面意义是“联合”这就是该函数所要执行的操作。如果第一个函数是 null则函数会继续执行下一行直到找到一个非 null 表达式。当然如果第一个表达式具有值则函数将返回第一个表达式并就此结束。
COALESCE 函数为COALESCE (表达式 1,表达式 2, ...表达式 n)
分析右侧所示的从雇员表进行检索的 SELECT 语句。
哪些雇员未获得佣金您是如何判断出的是否有些雇员既未获得佣金也未获得薪金