📅  最后修改于: 2023-12-03 15:01:08.653000             🧑  作者: Mango
Hive是建立在Hadoop基础上的数据仓库平台,可以处理大规模结构化数据,并提供SQL-LIKE语言(HiveQL)以查询和管理数据。在HiveQL中,内置了许多操作符,可帮助程序员更方便地对数据进行操作和转换。
Hive支持基本的算术运算符。例如,+,-,*和/可以分别用于两个操作数之间的加法,减法,乘法和除法运算。还有取模运算符%和算术表达式中的括号。
-- 加法运算
SELECT col1 + col2 FROM table;
-- 减法运算
SELECT col1 - col2 FROM table;
-- 乘法运算
SELECT col1 * col2 FROM table;
-- 除法运算
SELECT col1 / col2 FROM table;
-- 取模运算
SELECT col1 % col2 FROM table;
-- 带括号的算术表达式
SELECT (col1 + col2) * col3 FROM table;
Hive支持比较运算符,主要用于条件语句和WHERE子句的判断。比较运算符包括等于(=),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=),以及<=>(比较两个操作数是否相等,包括NULL)。
-- 判断两列是否相等
SELECT col1 = col2 FROM table;
-- 判断两列是否不相等
SELECT col1 != col2 FROM table;
-- 判断col1是否大于col2
SELECT col1 > col2 FROM table;
-- 判断col1是否小于col2
SELECT col1 < col2 FROM table;
-- 判断col1是否大于等于col2
SELECT col1 >= col2 FROM table;
-- 判断col1是否小于等于col2
SELECT col1 <= col2 FROM table;
-- 判断col1是否与col2相等(包括NULL)
SELECT col1 <=> col2 FROM table;
Hive还支持逻辑运算符。主要包括AND(&&)、OR(||)和NOT(!)。逻辑运算符通常用于条件语句和WHERE子句中的布尔运算。
-- 多个条件之间的AND运算
SELECT * FROM table WHERE col1 > 10 AND col2 < 20;
-- 多个条件之间的OR运算
SELECT * FROM table WHERE col1 < 10 OR col2 > 20;
-- 对一个条件取反
SELECT * FROM table WHERE NOT col1 = 10;
Hive支持LIKE和RLIKE(正则表达式)操作符来实现基于字符串的模式匹配。通常用于WHERE子句中的条件语句。
-- LIKE操作符,匹配以'abc'开头的字符串
SELECT * FROM table WHERE col1 LIKE 'abc%';
-- RLIKE操作符,匹配以数字开头的字符串
SELECT * FROM table WHERE col1 RLIKE '^[0-9]+.*$';
Hive还支持其他一些操作符,如位操作符(&,|,^,~),赋值操作符(=)和条件运算符(IF,CASE WHEN)。
-- 位操作符
SELECT col1 | col2 FROM table;
-- 赋值操作符
UPDATE table SET col1 = 10 WHERE id = 1;
-- IF条件函数
SELECT IF(col1 > 10, 'large', 'small') FROM table;
-- CASE WHEN条件语句
SELECT CASE WHEN col1 > 10 THEN 'large' ELSE 'small' END FROM table;
以上是Hive内置的一些操作符,可用于数据操作和转换。程序员需要根据自己的需求选择合适的操作符来实现任务。