Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
页面加载耗时 0.00 毫秒·物理内存 131.4MB ·虚拟内存 1372.6MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
Hive 中有四种类型的操作符:
这些运算符用于比较两个操作数。下表介绍了Hive中可用的关系运算符:
| 操作者 | 操作数 | 描述 |
|---|---|---|
| A = B | 所有原始类型 | 如果表达式A等同于表达式B,则返回FALSE。 |
| A!= B | 所有原始类型 | 如果表达式A与表达式B不等价,则返回FALSE。 |
| A | 所有原始类型 | 如果表达式A小于表达式B,则返回TRUE,否则返回FALSE。 |
| A <= B | 所有原始类型 | 如果表达式A小于或等于表达式B,则返回TRUE否则返回FALSE。 |
| A> B | 所有原始类型 | 如果表达式A大于表达式B,则返回TRUE,否则返回FALSE。 |
| A> = B | 所有原始类型 | 如果表达式A大于或等于表达式B,则返回TRUE,否则返回FALSE。 |
| 一个IS NULL | 所有类型 | 如果表达式A的计算结果为NULL,则返回FALSE。 |
| 一个不是NULL | 所有类型 | 如果表达式A的计算结果为NULL,则为FALSE否则为TRUE。 |
| A喜欢B | 字符串 | 如果字符串模式A与B匹配,则返回FALSE。 |
| RLIKE B | 字符串 | 如果A或B为NULL,则为NULL;如果A的任何子字符串与Java正则表达式B匹配,则为TRUE,否则为FALSE。 |
| REGEXP B | 字符串 | 和RLIKE一样。 |
让我们假设 雇员 表由名称为Id,Name,Salary,Designation和Dept的字段组成,如下所示。生成一个查询来检索ID为1205的员工详细信息。
+-----+--------------+--------+---------------------------+------+ | Id | Name | Salary | Designation | Dept | +-----+--------------+------------------------------------+------+ |1201 | Gopal | 45000 | Technical manager | TP | |1202 | Manisha | 45000 | Proofreader | PR | |1203 | Masthanvali | 40000 | Technical writer | TP | |1204 | Krian | 40000 | Hr Admin | HR | |1205 | Kranthi | 30000 | Op Admin | Admin| +-----+--------------+--------+---------------------------+------+
执行以下查询以使用上表检索员工详细信息:
hive> SELECT * FROM employee WHERE Id=1205;
成功执行查询后,您将看到以下响应:
+-----+-----------+-----------+----------------------------------+ | ID | Name | Salary | Designation | Dept | +-----+---------------+-------+----------------------------------+ |1205 | Kranthi | 30000 | Op Admin | Admin | +-----+-----------+-----------+----------------------------------+
执行以下查询以检索工资大于或等于40000卢比的员工详细信息。
hive> SELECT * FROM employee WHERE Salary>=40000;
成功执行查询后,您将看到以下响应:
+-----+------------+--------+----------------------------+------+ | ID | Name | Salary | Designation | Dept | +-----+------------+--------+----------------------------+------+ |1201 | Gopal | 45000 | Technical manager | TP | |1202 | Manisha | 45000 | Proofreader | PR | |1203 | Masthanvali| 40000 | Technical writer | TP | |1204 | Krian | 40000 | Hr Admin | HR | +-----+------------+--------+----------------------------+------+
这些运算符支持操作数上的各种常见算术运算。他们都返回数字类型。下表描述了Hive中可用的算术运算符:
| 运算符 | 操作数 | 描述 |
|---|---|---|
| A + B | 所有数字类型 | 给出添加A和B的结果。 |
| A - B | 所有数字类型 | 给出从A中减去B的结果。 |
| A * B | 所有数字类型 | 给出A和B相乘的结果。 |
| A / B | 所有数字类型 | 给出从A中除B的结果。 |
| A%B | 所有数字类型 | 给出由A除B产生的提醒。 |
| A&B | 所有数字类型 | 给出A和B的按位AND的结果。 |
| A | B | 所有数字类型 | 给出A和B的按位OR的结果。 |
| A ^ B | 所有数字类型 | 给出A和B的按位XOR的结果。 |
| 〜A | 所有数字类型 | 给出A的按位NOT的结果。 |
以下查询添加了两个数字,20和30。
hive> SELECT 20+30 ADD FROM temp;
成功执行查询后,您将看到以下响应:
+--------+ | ADD | +--------+ | 50 | +--------+
操作符是逻辑表达式。他们都返回TRUE或FALSE。
| 操作符 | 操作数 | 描述 |
|---|---|---|
| A AND B | 布尔 | 如果A和B都为TRUE,则为TRUE,否则为FALSE。 |
| A && B | 布尔 | 与A和B.相同 |
| A OR B | 布尔 | 如果A或B或两者都为TRUE,则为TRUE,否则为FALSE。 |
| A || B | 布尔 | 与A或B相同 |
| NOT A | 布尔 | 如果A为FALSE,则为TRUE,否则为FALSE。 |
| !A | 布尔 | 与NOT A相同 |
以下查询用于检索部门为TP且薪酬大于40000卢比的员工详细信息。
hive> SELECT * FROM employee WHERE Salary>40000 && Dept=TP;
成功执行查询后,您将看到以下响应:
+------+--------------+-------------+-------------------+--------+ | ID | Name | Salary | Designation | Dept | +------+--------------+-------------+-------------------+--------+ |1201 | Gopal | 45000 | Technical manager | TP | +------+--------------+-------------+-------------------+--------+
这些运算符提供了一个表达式来访问复杂类型的元素。
| 操作者 | 操作数 | 描述 |
|---|---|---|
| A[n] | A是一个数组,n是一个int | 它返回数组A中的第n个元素。第一个元素的索引为0。 |
| M[key] | M是Map ,键有K型 | 它返回地图中对应于键的值。 |
| S.x | S是一个结构 | 它返回S的x字段 |
Hive 内置函数看起来与SQL函数非常相似,除了它们的用法有些区别。 内置函数Hive支持以下内置函数:返回类型签名描述BIGINTround(double a)它返回double的四舍五入BIGINT值。B ...