zoukankan      html  css  js  c++  java
  • Hive_Where语句

    1.使用WHERE子句,将不满足条件的行过滤掉

    2.WHERE子句紧随FROM子句

    3.案例实操

      查询出薪水大于1000的所有员工

    hive (default)> select * from emp where sal >1000;

    1 比较运算符(Between/In/ Is Null)

    1)下面表中描述了谓词操作符,这些操作符同样可以用于JOIN…ON和HAVING语句中。

    表6-4

    操作符

    支持的数据类型

    描述

    A=B

    基本数据类型

    如果A等于B则返回TRUE,反之返回FALSE

    A<=>B

    基本数据类型

    如果A和B都为NULL,则返回TRUE,其他的和等号(=)操作符的结果一致,如果任一为NULL则结果为NULL

    A<>B, A!=B

    基本数据类型

    A或者B为NULL则返回NULL;如果A不等于B,则返回TRUE,反之返回FALSE

    A<B

    基本数据类型

    A或者B为NULL,则返回NULL;如果A小于B,则返回TRUE,反之返回FALSE

    A<=B

    基本数据类型

    A或者B为NULL,则返回NULL;如果A小于等于B,则返回TRUE,反之返回FALSE

    A>B

    基本数据类型

    A或者B为NULL,则返回NULL;如果A大于B,则返回TRUE,反之返回FALSE

    A>=B

    基本数据类型

    A或者B为NULL,则返回NULL;如果A大于等于B,则返回TRUE,反之返回FALSE

    A [NOT] BETWEEN B AND C

    基本数据类型

    如果A,B或者C任一为NULL,则结果为NULL。如果A的值大于等于B而且小于或等于C,则结果为TRUE,反之为FALSE。如果使用NOT关键字则可达到相反的效果。

    A IS NULL

    所有数据类型

    如果A等于NULL,则返回TRUE,反之返回FALSE

    A IS NOT NULL

    所有数据类型

    如果A不等于NULL,则返回TRUE,反之返回FALSE

    IN(数值1, 数值2)

    所有数据类型

    使用 IN运算显示列表中的值

    A [NOT] LIKE B

    STRING 类型

    B是一个SQL下的简单正则表达式,也叫通配符模式,如果A与其匹配的话,则返回TRUE;反之返回FALSE。B的表达式说明如下:‘x%’表示A必须以字母‘x’开头,‘%x’表示A必须以字母’x’结尾,而‘%x%’表示A包含有字母’x’,可以位于开头,结尾或者字符串中间。如果使用NOT关键字则可达到相反的效果。

    A RLIKE B, A REGEXP B

    STRING 类型

    B是基于java的正则表达式,如果A与其匹配,则返回TRUE;反之返回FALSE。匹配使用的是JDK中的正则表达式接口实现的,因为正则也依据其中的规则。例如,正则表达式必须和整个字符串A相匹配,而不是只需与其字符串匹配。

    2)案例实操

    (1)查询出薪水等于5000的所有员工

    hive (default)> select * from emp where sal =5000;

    (2)查询工资在500到1000的员工信息

    hive (default)> select * from emp where sal between 500 and 1000;

    (3)查询comm为空的所有员工信息

    hive (default)> select * from emp where comm is null;

    (4)查询工资是1500或5000的员工信息

    hive (default)> select * from emp where sal IN (1500, 5000);

    2、Like和RLike

    1)使用LIKE运算选择类似的值

    2)选择条件可以包含字符或数字:

    % 代表零个或多个字符(任意个字符)。

    _ 代表一个字符。

    3)RLIKE子句是Hive中这个功能的一个扩展,其可以通过Java的正则表达式这个更强大的语言来指定匹配条件。

    4)案例实操

    (1)查找以2开头薪水的员工信息

    hive (default)> select * from emp where sal LIKE '2%';

    (2)查找第二个数值为2的薪水的员工信息

    hive (default)> select * from emp where sal LIKE '_2%';

    (3)查找薪水中含有2的员工信息

    hive (default)> select * from emp where sal RLIKE '[2]';

    3、逻辑运算符(And/Or/Not)

    操作符

    含义

    AND

    逻辑并

    OR

    逻辑或

    NOT

    逻辑否

    案例实操

    (1)查询薪水大于1000,部门是30

    hive (default)> select * from emp where sal>1000 and deptno=30;

    (2)查询薪水大于1000,或者部门是30

    hive (default)> select * from emp where sal>1000 or deptno=30;

    (3)查询除了20部门和30部门以外的员工信息

    hive (default)> select * from emp where deptno not IN(30, 20);
    学习中,博客都是自己学习用的笔记,持续更新改正。。。
  • 相关阅读:
    旧文备份:CANopen协议PDO的几种传输方式
    CANopen 基础
    单片机FLASH与RAM、ROM的关系
    在CANopen网络中通过LSS服务设置节点地址和网络波特率
    STM32F103 CAN中断发送功能的再次讨论
    由RS-232串口到PROFIBUS-DP总线的转换接口设计
    profibus 的DPV0 和DPV1
    PROFIBUS-DP
    profibus总线和profibus dp的区别
    获取验证码倒计时
  • 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11802097.html
Copyright © 2011-2022 走看看