当前位置:   article > 正文

Hive--函数--常用内置函数--逻辑运算与数学运算_hive 与或操作

hive 与或操作

Hive数学运算

  • 加法操作: +
  • 减法操作: -
  • 乘法操作: *
  • 除法操作: /
  • 取余操作: %
  • 位与操作: &
  • 位或操作: |
  • 位异或操作: ^
  • 位取反操作: ~

加法操作: +

  • 语法: A + B
  • 操作类型:所有数值类型
  • 说明:返回A与B相加的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。比如,int + int 一般结果为int类型,而int + double 一般结果为double类型
  • 举例:
hive> select 1 + 9 from dual;
10
  • 1
  • 2

减法操作: -

  • 语法: A – B
  • 操作类型:所有数值类型
  • 说明:返回A与B相减的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。比如,int – int 一般结果为int类型,而int – double 一般结果为double类型
  • 举例:
hive> select 10 – 5 from dual;
5
  • 1
  • 2

乘法操作 : *

  • 语法: A * B
  • 操作类型:所有数值类型
  • 说明:返回A与B相乘的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。注意,如果A乘以B的结果超过默认结果类型的数值范围,则需要通过cast将结果转换成范围更大的数值类型
  • 举例:
hive> select 40 * 5 from dual;
200
  • 1
  • 2

除法操作 : /

  • 语法: A / B
  • 操作类型:所有数值类型
  • 说明:返回A除以B的结果。结果的数值类型为double
  • 举例:
hive> select 40 / 5 from dual;
8.0
  • 1
  • 2
  • 注意: hive 中最高精度的数据类型是 double, 只精确到小数点后 16 位,在做除法运算的时候要 特别注意
hive>select ceil(28.0/6.999999999999999999999) from dual limit 1;   

结果为4

hive>select ceil(28.0/6.99999999999999) from dual limit 1;          

结果为5
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

取余操作 : %

  • 语法: A % B
  • 操作类型:所有数值类型
  • 说明:返回A除以B的余数。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。
  • 举例:
hive> select 41 % 5 from dual;
1

hive> select 8.4 % 4 from dual;
0.40000000000000036
  • 1
  • 2
  • 3
  • 4
  • 5
  • 注意:精度在 hive 中是个很大的问题,类似这样的操作最好通过 round 指定精度
hive> select round(8.4 % 4 , 2) from dual;

0.4
  • 1
  • 2
  • 3

位与操作 : &

  • 语法: A & B
  • 操作类型:所有数值类型
  • 说明:返回A和B按位进行与操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。
  • 举例:
hive> select 4 & 8 from dual;
0

hive> select 6 & 4 from dual;
4
  • 1
  • 2
  • 3
  • 4
  • 5

位或操作 : |

  • 语法: A | B
  • 操作类型:所有数值类型
  • 说明:返回A和B按位进行或操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。
  • 举例:
hive> select 4 | 8 from dual;
12

hive> select 6 | 8 from dual;
14
  • 1
  • 2
  • 3
  • 4
  • 5

位异或操作 : ^

  • 语法: A ^ B
  • 操作类型:所有数值类型
  • 说明:返回A和B按位进行异或操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。
  • 举例:
hive> select 4 ^ 8 from dual;
12

hive> select 6 ^ 4 from dual;
2
  • 1
  • 2
  • 3
  • 4
  • 5

取反操作 : ~

  • 语法: ~A
  • 操作类型:所有数值类型
  • 说明:返回A按位取反操作的结果。结果的数值类型等于A的类型。
  • 举例:
hive> select ~6 from dual;
-7

hive> select ~4 from dual;
-5
  • 1
  • 2
  • 3
  • 4
  • 5

Hive逻辑运算

  • 逻辑与操作: AND
  • 逻辑或操作: OR
  • 逻辑非操作: NOT

逻辑与操作 : AND

  • 语法: A AND B
  • 操作类型:boolean
  • 说明:如果A和B均为TRUE,则为TRUE;否则为FALSE。如果A为NULL或B为NULL,则为NULL
  • 举例:
hive> select 1 from dual where 1=1 and 2=2;
1
  • 1
  • 2

逻辑或操作 : OR

  • 语法: A OR B
  • 操作类型:boolean
  • 说明:如果A为TRUE,或者B为TRUE,或者A和B均为TRUE,则为TRUE;否则为FALSE
  • 举例:
hive> select 1 from dual where 1=2 or 2=2;
1
  • 1
  • 2

逻辑非操作 : NOT

  • 语法: NOT A
  • 操作类型:boolean
  • 说明:如果A为FALSE,或者A为NULL,则为TRUE;否则为FALSE
  • 举例:
hive> select 1 from dual where not 1=2;
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/962700
推荐阅读
相关标签
  

闽ICP备14008679号