1.NVL函数

NVL函数的格式如下:NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

NVL(expr1, expr2):
1、空值转换函数;
2、类似于mysql-nullif(expr1, expr2),sqlserver-ifnull(expr1, expr2)。

备注:
1、如果expr1为NULL,返回值为 expr2,否则返回expr1。
2、适用于数字型、字符型和日期型,但是 expr1和expr2的数据类型必须为同类型。

2 NVL2函数
NVL2函数的格式如下:NVL2(expr1,expr2, expr3)
含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。SQL> select ename,NVL2(comm,-1,1) from emp;
 
ENAME NVL2(COMM,-1,1)
------- -----
SMITH 1
ALLEN -1
WARD -1
JONES 1
MARTIN -1
BLAKE 1
CLARK 1
SCOTT 1
上面的例子中。凡是结果是1的原来都不为空,而结果是-1的原来的值就是空。

3. NULLIF函数
NULLIF(exp1,expr2)函数的作用是如果exp1和exp2相等则返回空(NULL),否则返回第一个值。
下面是一个例子。使用的是oracle中HR schema,如果HR处于锁定,请启用
这里的作用是显示出那些换过工作的人员原工作,现工作。
SQL> SELECT e.last_name, e.job_id,j.job_id,NULLIF(e.job_id, j.job_id) “Old Job ID”
FROM employees e, job_history j
WHERE e.employee_id = j.employee_id
ORDER BY last_name;
 
LAST_NAME JOB_ID JOB_ID Old Job ID
----------------- ------- ------- -------
De Haan AD_VP IT_PROG AD_VP
Hartstein MK_MAN MK_REP MK_MAN
Kaufling ST_MAN ST_CLERK ST_MAN
Kochhar AD_VP AC_MGR AD_VP
Kochhar AD_VP AC_ACCOUNT AD_VP
Raphaely PU_MAN ST_CLERK PU_MAN
Taylor SA_REP SA_MAN SA_REP
Taylor SA_REP SA_REP
Whalen AD_ASST AC_ACCOUNT AD_ASST
Whalen AD_ASST AD_ASST
可以看到凡是employee。job_id和job_histroy.job_id相等的,都会在结果中输出NULL即为空,否则显示的是employee。job_id

4.Coalesce函数
Coalese函数的作用是的NVL的函数有点相似,其优势是有更多的选项。
格式如下:
Coalesce(expr1, expr2, expr3….. exprn)
表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。
返回表达式中第一个非空表达式,如有以下语句:

SELECT COALESCE(NULL,NULL,3,4,5) FROM dual

其返回结果为:3
如果所有自变量均为 NULL,则 COALESCE 返回 NULL 值。

COALESCE(expression1,...n) 与此 CASE 函数等价:

这个函数实际上是NVL的循环使用,在此就不举例子了。

参考:https://blog.csdn.net/qq_34941023/article/details/51440579

Hive SQL NVL 相关函数的更多相关文章

  1. Hive Sql的日常使用笔记

    date: 2019-03-22 17:02:37 updated: 2020-04-08 16:00:00 Hive Sql的日常使用笔记 1. distinct 和 group by distin ...

  2. 最强最全面的Hive SQL开发指南,超四万字全面解析

    本文整体分为两部分,第一部分是简写,如果能看懂会用,就直接从此部分查,方便快捷,如果不是很理解此SQL的用法,则查看第二部分,是详细说明,当然第二部分语句也会更全一些! 第一部分: hive模糊搜索表 ...

  3. 【hive】——Hive sql语法详解

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

  4. Hive SQL 监控系统 - Hive Falcon

    1.概述 在开发工作当中,提交 Hadoop 任务,任务的运行详情,这是我们所关心的,当业务并不复杂的时候,我们可以使用 Hadoop 提供的命令工具去管理 YARN 中的任务.在编写 Hive SQ ...

  5. hive sql 语法详解

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

  6. Hive sql 语法解读

    一. 创建表 在官方的wiki里,example是这种: Sql代码   CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name d ...

  7. Spark(Hive) SQL中UDF的使用(Python)

    相对于使用MapReduce或者Spark Application的方式进行数据分析,使用Hive SQL或Spark SQL能为我们省去不少的代码工作量,而Hive SQL或Spark SQL本身内 ...

  8. Spark(Hive) SQL数据类型使用详解(Python)

    Spark SQL使用时需要有若干“表”的存在,这些“表”可以来自于Hive,也可以来自“临时表”.如果“表”来自于Hive,它的模式(列名.列类型等)在创建时已经确定,一般情况下我们直接通过Spar ...

  9. 由“Beeline连接HiveServer2后如何使用指定的队列(Yarn)运行Hive SQL语句”引发的一系列思考

    背景   我们使用的HiveServer2的版本为0.13.1-cdh5.3.2,目前的任务使用Hive SQL构建,分为两种类型:手动任务(临时分析需求).调度任务(常规分析需求),两者均通过我们的 ...

随机推荐

  1. VS代码自动排版

    1, ctrl+a 2, ctrl+k 3, ctrl+f

  2. VMware网络配置三种网络模式(桥接、NAT、Host-only)

    VMware网络配置三种网络模式(桥接.NAT.Host-only) 一.虚拟安装后三种网络模式显示 当安装好后,的“虚拟网络编辑器”中也存在三种模式,分别对应:桥接-VMnet0.Host-only ...

  3. opencv 图片识别

    # -*- coding: utf-8 -*-"""Created on Fri Nov 22 21:35:12 2019 @author: Administrator& ...

  4. django实现发送邮件功能

    django实现邮件发送功能 1)首先注册一个邮箱,这里以163邮箱为例 2)注册之后登录,进行如下修改 找到设置,设置一个授权码,授权码的目的仅仅是让你有权限发邮件,但是不能登录到邮箱进行修改,发送 ...

  5. datatable修改每页默认显示的数量

    datatable修改每页默认显示的数量 一.总结 一句话总结: iDisplayLength属性:'iDisplayLength':50 1.datatable默认每页显示50个? iDisplay ...

  6. npm命令Error: EINVAL: invalid argument, mkdir

    错误原因:在node.js的安装目录下创建两个文件夹,node_cache和node_global,然后命令行设置: npm config set cache "D:\nodejs\node ...

  7. 01_Tutorial 1: Serialization 序列化

    1.序列化 1.官方教程 https://q1mi.github.io/Django-REST-framework-documentation/tutorial/1-serialization_zh/ ...

  8. Kylin介绍 (很有用)

    转:http://blog.csdn.net/yu616568/article/details/48103415 Kylin是ebay开发的一套OLAP系统,与Mondrian不同的是,它是一个MOL ...

  9. 25 | MySQL是怎么保证高可用的?

    在上一篇文章中,我和你介绍了binlog的基本内容,在一个主备关系中,每个备库接收主库的binlog并执行. 正常情况下,只要主库执行更新生成的所有binlog,都可以传到备库并被正确地执行,备库就能 ...

  10. Linux操作系统常用命令合集——第二篇- 用户和组操作(15个命令)

    一.前言:本篇介绍用户和组操作的15个命令,在介绍之前我们先来看看几个示例 1.先进入到etc目录下,找到passwd文件,用vi编辑器查看: # vi /etc/passwd 解释:这里面存放着Li ...