首页 > 其他分享 >Hive学习笔记:nvl和coalesce函数的区别

Hive学习笔记:nvl和coalesce函数的区别

时间:2023-10-25 15:24:51浏览次数:33  
标签:null 函数 -- Hive coalesce nvl select

nvl 函数和 coalesce 函数都是用来处理空值的函数,但略有不同。

注意:非 NULL 值为 NULL, 如果是'',' ', 'null', 'NULL'等视为字符串,返回参数本身。

一、nvl函数

nvl 只能处理2个参数,如果第1个不是 null, 则返回第1个参数,否则返回第2个参数。

select nvl(1, 2);  -- 1
select nvl(1, null); -- 1
select nvl(null, 1); -- 1
select nvl(null, null); -- null

二、coalesce函数

coalesce 可以处理多个参数,逐个参数检查,返回第1个非空值。

如果所有参数都为空,则返回 null

select coalesce(1, 2, 3); -- 1
select coalesce(null, 1, 2); -- 1
select coalesce(null, null, 3); -- 3
select coalesce(null, null, null); -- null

三、ifnull函数

ifnull 类似于 nvl 函数,经测试发现未定义,可能部分版本不支持。

Error while compiling statement: FAILED: SemanticException [Error 10011]: Invalid function ifnull

参考链接:NVL函数和COALESCE函数的区别

参考链接:hive coalesce、nvl、ifnull的区别

标签:null,函数,--,Hive,coalesce,nvl,select
From: https://www.cnblogs.com/hider/p/17787278.html

相关文章

  • hive基本操作
    间隔几年,又开始频繁写hive的sql,整理一点关于hive常用的基本语句,只有天天写的时候才很熟练,过几年很容易遗忘的东西。hive创建表droptableifexistsods.tb_fdn_testtable;createtableifnotexistsods.tb_fdn_testtable(citystringcomment'地市'......
  • oracle打开/关闭归档日志ARCHIVELOG
    1.使用SQLPlus登录用户名:sqlplus密码:assysdba 2.查询数据库是否是归档模式:查询结果为“ARCHIVELOG”表示数据库为归档模式SELECTlog_modeFROMv$database;3.关闭数据库shutdownimmediate;4.启动数据库mount模式startupmount;5.启动归档日志alte......
  • ORA16401archivelogrejectedbyRFS解决方法
    之前做DataGuard做了一次Switchover切换,之后standby库就报如下错误:ThuJul2908:03:292010Errorsinfile/dba/oracle/admin/newccs/udump/newccs_rfs_19602.trc:ORA-16401:archivelogrejectedbyRFSThuJul2908:03:292010Errorsinfile/dba/oracle/admin/newc......
  • Hive学习笔记:多列求最大值、最小值
    一、最大值当在Hive中需要对多列数据求最大值时,可以使用函数greatest(a,b,c,d)实现。selectgreatest(a,b,c)from( select10asa,20asb,30asc)dd;--结果:30举个具体栗子:计算用户消费时,如果用户套餐有最低消费129元的话,不满12......
  • 农业全要素生产率的计算(使用HiveQL分析)
    需求:工作中需要计算农业全要素生产率数据,需要利用HiveQL进行数据仓库提取,然后进行转换式计算,最后需要进行要素生产效率分析,用于后续的深度数据挖掘。解决:CREATETABLEIFNOTEXISTSmytable( col1STRING, col2INT, col3DOUBLE)ROWFORMATDELIMITEDFIELDSTERMIN......
  • 报错Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.meta
    在执行hive on spark的时候 上面的错误可能有以下几种问题:1.版本问题 不匹配2.时间参数问题  设置的参数太小了3.在hive-site.xml文件中没有配置spark的home我的问题属于第一个问题导致没有跑成功当时也在想是不是内存出现了问题 ......
  • MySql 关键字 COALESCE
    MySQLCOALESCE()函数用于返回表达式列表中的第一个非空值。如果列表中的所有值均评估为NULL,则COALESCE()函数将返回NULL。COALESCE()函数接受一个参数,该参数是可以包含各种值的列表。MySQLCOALESCE()函数返回的值是表达式列表中的第一个非空值;如果列表中的所有值均为NULL,则为N......
  • hive表加字段
    hive原表结构hive表加新字段interface_typealtertabletest.test_tableaddcolumns(interface_typestring);hive表新表结构......
  • dremio hive 连接
    dremio对于hive的连接实际上有两种方法,一种使用的是hive的metastore,一种是使用的hivejdbcserver第一中是官方支持的,第二种官方缺少直接的支持,需要自己开发相关的arp扩展一些参考实现cdata目前提供了一个开源实现,但是jdbc驱动使用的是自己的,实际上这个我们可以调整为h......
  • pyspark 连接hive
    pyspark连接hive想要spark能够连接上hive,就需要将hive的一些配置文件放到spark中,让spark可以通过配置文件中的metastore.uris找到hive的元数据库,从而访问hive.1.将hive的conf文件夹下的hive-site.xml,复制到本地spark的conf文件夹中:2.将hive的lib文件夹下的mysql连接包mysql-co......