当前位置: 首页 > news >正文

中国建设银行个人信息网站站长统计app软件下载官网

中国建设银行个人信息网站,站长统计app软件下载官网,肥城市网站建设,网站做web一、set运算符 union:得到两个查询结果的并集,并且⾃动去掉重复⾏。不会排序 union all:得到两个查询结果的并集,不会去掉重复⾏。也不会排序 intersect:得到两个查询结果的交集,并且按照结果集的第⼀个列进…

一、set运算符

set操作符
union:得到两个查询结果的并集,并且⾃动去掉重复⾏。不会排序
union all:得到两个查询结果的并集,不会去掉重复⾏。也不会排序
intersect:得到两个查询结果的交集,并且按照结果集的第⼀个列进⾏排序
minus:得到两个查询结果的减集,以第⼀列进⾏排序

--查询部门的部门号,其中不包括job_id是”ST_CLERK”的部门号
select department_id
from departments
minus
select department_id
from employees
where job_id = 'ST_CLERK'
--查询10,50,20号部门的job_id,department_id
--并且department_id按10,50,20的顺序排列
column a_dummy noprint	--隐藏后面的1、2、3(序列号)select job_id,department_id,1 a_dummy
from employees
where department_id = 10
union
select job_id,department_id,2
from employees
where department_id = 50
union
select job_id,department_id,3
from employees
where department_id = 20
order by 3	--使用order by对结果集排序
--查询所有员工的last_name ,department_id 和department_name
select last_name,department_id,to_char(null) department_name
from employees
union
select to_char(null),department_id,department_name
from departments

二、高级子查询

1.多列子查询

多列子查询中的比较分为两种:成对比较、不成对比较

成对比较

--查询与141号或174号员工的manager_id和department_id相同的
--其他员工的employee_id, manager_id, department_id
select employee_id,manager_id,department_id
from employees
where (manager_id,department_id) in (select manager_id,department_idfrom employeeswhere employee_id in (141,174))
and employee_id not in (141,174)

不成对比较

select employee_id,manager_id,department_id
from employees
where manager_id in (select manager_idfrom employeeswhere employee_id in (141,174))
and department_id in (select department_idfrom employeeswhere employee_id in (141,174))
and employee_id not in (141,174)

2.在 FROM 子句中使用子查询

案例对比:

--返回比本部门平均工资高的员工的last_name, department_id, salary及平均工资
select last_name,department_id,salary,
(select avg(salary) from employees e3 where e1.department_id = e3.department_id group by department_id) avg_sal
from employees e1
where salary > (select avg(salary)from employees e2where e1.department_id = e2.department_idgroup by department_id)
--在 FROM 子句中使用子查询
--返回比本部门平均工资高的员工的last_name, department_id, salary及平均工资
select last_name,e1.department_id,salary,e2.avg_sal
from employees e1,(select department_id,avg(salary) avg_sal from employees group by department_id) e2
where e1.department_id = e2.department_id
and e1.salary > e2.avg_sal

由上可知,在 FROM 子句中使用子查询可以减少冗余

3.单列子查询

<1>在 CASE 表达式中使用单列子查询

--显示员工的employee_id,last_name和location。
--其中,若员工department_id与location_id为1800的department_id相同,则location为’Canada’
--其余则为’USA’。
select employee_id,last_name,
(case department_id when (select department_id from departments where location_id = 1800) then 'Canada'else 'USA' end) location
from employees

<2>在 ORDER BY 子句中使用单列子查询

--查询员工的employee_id,last_name,要求按照员工的department_name排序
select employee_id,last_name
from employees e
order by (select department_namefrom departments dwhere e.department_id = d.department_id) asc

4.相关子查询

子查询中使用主查询中的列,主查询的每一行都执行一次子查询

--查询员工中工资大于本部门平均工资的员工的last_name,salary和其department_id
select last_name,salary,department_id
from employees e1
where salary > (select avg(salary)from employees e2where e1.department_id = e2.department_id)
--若employees表中employee_id与job_history表中employee_id相同的数目不小于2,
--输出这些相同id的员工的employee_id,last_name和其job_id
select employee_id,last_name,job_id
from employees e
where 2 <= (select count(1)from job_historywhere e.employee_id = employee_id )

5.EXISTS操作符和NOT EXISTS操作符

EXISTS 操作符检查在子查询中是否存在满足条件的行
如果满足条件则输出
NOT EXISTS操作符正好相反

--查询公司管理者的employee_id,last_name,job_id,department_id信息
select employee_id,last_name,job_id,department_id
from employees mgr
where exists(select 'A'from employees empwhere mgr.employee_id = emp.manager_id)
--查询departments表中,不存在于employees表中的部门的department_id和department_name
select department_id,department_name
from departments d
where not exists(select 'A'from employeeswhere department_id = d.department_id)

6.WITH 子句

使用 WITH 子句, 可以避免在 SELECT 语句中重复书写相同的语句块
WITH 子句将该子句中的语句块执行一次并存储到用户的临时表空间中
使用 WITH 子句可以提高查询效率

--查询公司中各部门的总工资大于公司中各部门的平均总工资的部门信息
with dept_sumsal as(
select department_name,sum(salary) sum_sal
from employees e,departments d
where e.department_id = d.department_id
group by department_name
),
dept_avgsal as(
select sum(sum_sal)/count(1) avg_sum_sal
from dept_sumsal
)select *
from dept_sumsal
where sum_sal > (select avg_sum_salfrom dept_avgsal)
order by department_name
http://www.khdw.cn/news/33657.html

相关文章:

  • 周口网站设计制作拉新app推广接单平台
  • 天猫网站是怎么做seo优化的当下最流行的营销方式
  • 简单写文章的网站网址创建
  • 建设网站需要什么知识网络推广外包怎么样
  • 西宁网站建设王道下拉惠seo网络推广案例
  • 网站开发 入门教程广告优化
  • 校园网站建设的要素如何做网站推广私人
  • 自在源码网新余seo
  • 成都营销型网站制作公司北京seo服务商
  • 手机wap网站建设解决方案磁力搜索器kitty
  • 建设银行官方网站诚聘英才频道网站内部优化有哪些内容
  • 做暖暖XO网站百度seo外包
  • 晋江网站建设企业seo排名优化
  • 绩效考核表 网站建设网址查询地址查询
  • 怎样设置网站访问权限百度广告投放
  • 长沙专业做网站的公司重庆网站seo外包
  • 洛阳网站建设启辰网络百度帐号个人中心
  • 郑州设计logo公司搜狗seo快速排名公司
  • 网站百度推广方案网站查询域名解析
  • 东莞市网站建设网络营销平台
  • 免费版b站广告投放平台有哪些
  • 网站排名优化价格爱站小工具计算器
  • 新做的网站如何金华网站推广
  • 建筑工程有限公司起名大全重庆电子商务seo
  • 用网站做自我介绍淘宝引流推广怎么做
  • 武义建设局网站首页seo公司资源
  • 招商网站如何做推广seo应该怎么做
  • 网站的设计与制作阅读第2版今日新闻头条大事
  • 房地网站制作中国关键词
  • wordpress怎么做链接青岛seo公司