zoukankan      html  css  js  c++  java
  • 17 SQL语言——子查询与关键字in

    子查询

    单行子查询


    --使用时机:筛选条件并不明确需要执行一次查询,并且查询结果只有一个字段并只有一个值
    --注意:where子句中允许出现查询语句,该查询语句称为子查询
    --例1:查询所有比雇员‘CLARK’工资高的员工信息。
    --普通两步:
    select sal from emp where ename='CLARK';--得到2450
    select* from emp where sal>2450;
    --使用子查询:
    select * from emp where sal>(select sal from emp where ename='CLARK');
    --例2:查询工资高于平均工资的员工的名字和工资
    select ename,sal from emp where sal>(select avg(sal) from emp);
    --例3:查询和scott属于同一部门且工资比他低的员工资料
    select * from emp where sal<(select sal from emp where ename='SCOTT');
    --例4:查询工资最高的员工资料
    select * from emp where sal=(select max(sal) from emp);
    --例5:查询职务和scott相同,雇佣时间早的员工信息
    select * from emp where hiredate<(select hiredate from emp where ename='SCOTT');
    --例6:查询工资比scott高或者雇佣时间早的员工编号和姓名
    select *
    from emp
    where hiredate<(select hiredate from emp where ename='SCOTT')
    or (sal>(select sal from emp where ename='SCOTT'));
    ;

    多行子查询

    --any任意一个
    --all所有
    --例7:查询工资高于 任何一个 CLERK的所有员工的员工信息
      --单行子查询方式:

    • select * from emp where sal>(select min(sal) from emp where job='CLERK') order by empno;

      --多行子查询方式:

    • select * from emp where sal> any(select sal from emp where job='CLERK')order by empno;

    --例8:查询工资高于 所有 SALESMAN的员工信息
      --单行子查询方式

    • select * from emp where sal>(select max(sal) from emp where job='SALESMAN') order by empno;

      --多行子查询方式

    • select * from emp where sal >all(select sal from emp where job='SALESMAN') order by empno;

    in关键字

    in相当于 =any

    例如   select * from emp where deptno in(10,20);

  • 相关阅读:
    WCF 第六章 序列化和编码 使用IExtensibleDataObject 的双向序列化
    如何获取SQLite最新版本及SQLite数据库中的SQL语句解说
    WCF 第六章 序列化与编码 编码选择
    WCF 第七章 寄宿 定义服务和终结点地址
    WCF 第七章 寄宿 总结
    WCF 第六章 序列化和编码 为自定义序列化使用XmlSerializer
    常用的Vi命令 记得:* . / 需要转义
    25日
    一张图 拯救你的 .net 调用Excel
    切莫误人子弟
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12299256.html
Copyright © 2011-2022 走看看