hive的查询方式二

226 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情

上文介绍了一些常规的hive查询方式,本文还是继续介绍hive的另外一些常用查询方式,其中和mysql一样的还有where条件查询,这个是最常用的条件筛查命令了,通过在where关键字后面增加条件,即可对数据进行过滤,也是提高性能的方式,减少无谓的数据查询。

select a,b,c from tableA a where a.time>'2022-01-01 00:00:00'  -- 在where后面增加时间的筛选过滤条件

上面用到了表的别名查询方式,这种写法可以让sql看起来结构更清晰,也可以为每一个列设置别名,在输出列字段后面加上

as new_name即可。

在上一篇中讲到了hive中的where的使用,使用方法很简单就是在where后面加上筛选条件即可。不过这里的操作符可以有很多种。

首先是等于,支持基本操作类型。返回结果是布尔型,正确返回true,错误返回false。

衍生出来的一种操作是A<=>B,这个可以用于判断两者是否为null,如果两个都是null,则返回true,其他情况和等于的操作符相同。

另外判断是否为null的情况,可以使用 is null和is not null操作符来使用。

isnull( a )和isnotnull ( a )的用法都比较简单,就不多说了,最重要的就是返回结果是boolean类型的,一定不能忽略了。

在hive中也是支持模糊匹配,使用like和not like。需要特别注意的是这里用到的基本操作类型是string。还有另外的正则匹配规则,使用方法A RLIKE B,A REGEXP B。相同的使用的基本操作类型也是string。

select name,id,age from table_test_student where grader  rlike '一年级'  and  id REGEXP 10001   -- 通过where后面的筛选条件 模糊匹配字段,年级字段匹配 一年级,学号匹配 10001.

select  name,id,age ,isnull(name),isnotnull(id) from student_test where id>1000000 -- 判断名称为null的数据和id不为null的数据。