持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情
不同于hive函数那样有明确的功能定义和使用方法,hive的查询方式也是有很多种,没有特定的函数或者方法名称,但是大致可以归纳为以下几种形式,下面我就一一来介绍一下,从简单到复杂的过程。
首先最简单的方式就是select语句啦,
select * from table_A ;
这应该是最简单的查询语句了,是把表名称为table_A的所有字段都查询出来,这样写肯定对性能影响很大,我们当然是不建议这样写的。
第二种查询方式就是在上面的基础上增加指定查询的列。
select a,b,x from table_A ;
上面例子就是将table_A中的a,b,x三列的数据查询出来。这样不会全表查询,也是提高了性能。
有时候变幻多种查询方式,目的可能就是为了提高查询性能,或者减少报错。
我们继续在上面的sql基础上进行改良,增加排序和行数的限制,可以想下面这样去写。
select a,b,c from tableA order by time limit 1000;
这样就将查询到的结果按照time升序,并且限制只会显示前1000条数据。
这两者经常合并使用,在查询最新数据的时候非常实用。
上面的是升序,降序的写法是 order by time desc。
下面是在字段查询中增加函数进行数据处理的方式,首先是判断语句形式。
select ...case when then from tableA
如果查询到某个字段是有很多枚举值,并且需要翻译成中文或者其他内容的,可以套用下面这样的格式。
select
a as a
,b as b
,case
when type=1 then '是'
when type=0 then '否'
else '未知'
end as c
from tableA
这个case ... when ... then ... 的函数使用可以是在多枚举值的情况下,或者有时候也可以作为条件判断的用法,就是根据不同的条件输出不同的结果,当然依据的还是要某个参数的值,也可以用作判断是否为null,来设置默认值,用法很多,就看你的实际需求了。