持续创作,加速成长!这是我参与「掘金日新计划 · 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的数据。