hive教程:sql多条件查询

逻辑运算符

在C/C++、java语言的 if语句 中,当有 多个条件 时,要用到 逻辑运算

在sql中的多条件查询也与之类似,要用到 逻辑运算符,如下:

  • 与:and,查询结果同时满足多个条件,优先级 高
  • 或:or,查询结果至少满足一个条件,优先级 低

语法:

select * from 表名 where 列名 [比较运算符] 值 [逻辑运算符] 列名 [比较运算符] 值

and

查询工资大于1500,并且job是MANAGER的记录

select * from emp where sal>1500 and job='MANAGER';

查询范围

例子:查询工资在800至3000的员工

select * from emp where 800<=sal and sal<=3000;

or

  1. 查询工资大于1500,或者奖金500以上的

    select * from emp where sal>1500 or comm>500;
    
  2. 查询 没有奖金 的员工信息

    select * from emp where comm is null or comm=0;
    
  3. 查询 有奖金 的员工信息

    select * from emp where comm is not null and  comm<>0;
    
  4. 查询job是SALESMAN或者MANAGER,并且薪资大于1500的员工信息
    错误写法:

    select * from emp where job='SALESMAN' OR JOB='MANAGER' AND 1500<SAL
    

    正确写法:

    select * from emp where (job='SALESMAN' OR JOB='MANAGER' ) AND 1500<SAL
    

练习

  1. 找出部门10 中的经理(MANAGER)和部门20 中的普通员工(CLERK)

  2. 找出部门10 中既不是MANAGER也不是CLERK,而且工资大于等于2000 的员工

  3. 找出有奖金的员工的不同工作

  4. 找出没有奖金或者奖金低于500 的员工,老员工在前面

  5. 显示雇员姓名,根据其服务年限,将最老的雇员排在最前面

  6. 查询出工资大于等于1600,小于等于3000的员工,工资多的在前面


原文出处:/show_1IXlQC88nol.html