服务器 频道

PL/SQL学习笔记之七

  【IT168 服务器学院】子查询:

  语法:
  select col from table
  where expr operator (select col from table);

  子查询在主查询执行前执行一次。
  子查询的结果被用于主查询。

  使用规则:

  在WHERE 和 HAVING 子句中都可以使用子查询。

  *、子查询必须用括号扩起。
  *、子查询应该在比较条件的右边。
  *、在子查询中的ORDER BY 子句不需要,除非执行TOP-N分析。
  TOP-N分析:(在一些表里求出最怎么怎么怎么样(最好、做多...)的几个人)。
  *、对单行子查询使用单行比较操作符,多行子查询使用多行比较操作符。

  可以在子查询中使用组函数。

  子查询的分类:

  单行单列子查询
  单行操作符:>,<,=,>=,<=,<>
  一定返回一行

  多行单列子查询

  单行多列子查询
  返回零行或多行

  多行操作符:
  in 等于列表中的任何值。(不能用NOT IN)
  ANY 与子查询返回的每个值进行比较。(小于是小于最大的,大于是大于最小的)

  select employee_id,last_name,job_id,salary from smployees
  where
  salary < any(select salary from employees where job_id=''IT_PROG'')
  and job_id <> ''IT_PROG'';

   ALL(小于是小于最小的,大于是大于最大的)  

  select e.employee_id,e.last_name,e.salary

  from employees e,

  (select department_id,min(salary) m from employees

  group by department_id )d

  where e.department_id=d.department_id

  and

  e.salary=d.m;
  查询每个部门薪水最少的员工的资料。

0
相关文章