--查询各个部门工资范围,按照1000~2000,2000~3000.。。。这样的格式显示人数
-------------------方法一
select
dept.dname ,nvl(ano,0) "1000以下",nvl(dno,0) "1000~2000",
nvl(bno,0) "2000~3000",nvl(cno,0) "3000以上"
from dept,
(select ano,"1000~2000" dno,"2000~3000" bno,nvl("3000以上",0) cno,f.deptno from
(select ano,"1000~2000","2000~3000",e.deptno from
(select nvl("1000以下",0) ano,"1000~2000",b.deptno from
(select count(sal) "1000以下" , deptno from emp where sal<1000 group by deptno) a ,
(select count(ename) "1000~2000",deptno from emp where sal>=1000 and sal<2000 group by deptno) b
where a.deptno(+) = b.deptno) e,
(select count(ename) "2000~3000",deptno from emp where sal>=2000 and sal<=3000 group by deptno) c
where e.deptno=c.deptno(+)) f,
(select count(ename) "3000以上",deptno from emp where sal>3000group by deptno) d
where f.deptno = d.deptno(+)) g
where g.deptno(+)=dept.deptno
---------------------------------------------------------------------------------------------------------------------
--方法二
select nvl(ano,0) "1000以下",nvl(bno,0) "1000~2000",nvl(cno,0) "2000~3000",nvl(dno,0) "3000以上",dept.dname from dept
full join
(select count(sal) ano , deptno from emp where sal<1000 group by deptno) a
on a.deptno = dept.deptno
full join
(select count(ename) bno,deptno from emp where sal>=1000 and sal<2000 group by deptno) b
on dept.deptno = b.deptno
full join
(select count(ename) cno,deptno from emp where sal>=2000 and sal<=3000 group by deptno) c
on dept.deptno = c.deptno
full join
(select count(ename) dno,deptno from emp where sal>3000group by deptno) d
on dept.deptno = d.deptno

运行结果:

综合实例

create table test1
("姓名" varchar2(20),"年龄" number(6),"籍贯" varchar2(40),"婚姻状况" varchar2(4),"性别" varchar2(2)); --修改字段类型 alter table 表名 modify(字段名 新数据类型(大小))(不能有数据)
alter table test1 modify ("年龄" number (4)); insert into test1 values ('张强',23,'宝鸡','未婚','男');
insert into test1 values ('张戈',25,'西安','未婚','男');
insert into test1 values ('张敏',35,'临潼','已婚','女');
insert into test1 values ('张超',57,'渭南','已婚','男');
insert into test1 values ('张灵',20,'武功','未婚','女');
insert into test1 values ('张林',18,'榆林','未婚','男');
insert into test1 values ('张宝',1208,'黄巾','未知','男');
insert into test1 values ('张角',1210,'黄巾','未知','男'); update test1 set "婚姻状况" = '丧偶' where "姓名"='张宝';
--添加字段 alter table 表名 add(字段名 数据类型(大小))
alter table test1 add ("结婚次数" number(3)); update test1 set "结婚次数"="年龄"/80 where "姓名"='张角';
update test1 set "结婚次数"=0 where "婚姻状况"='未婚'; update test1 set "结婚次数"=2 where "姓名" in('张敏','张超'); --删除字段 alter table 表名 drop column 字段名
alter table test1 add (canspel char(1)); update test1 set canspel = 'y' where "年龄"<30;
update test1 set canspel = 'n' where "年龄">=30;
alter table test1 drop column canspel;
rename test1 to "古今人物婚姻调查";
select *from "古今人物婚姻调查";
alter session set nls_date_format='yyyy-mm-dd';
alter table "古今人物婚姻调查" add ("调查日期" date default sysdate);
alter table "古今人物婚姻调查" drop column "调查日期";
update "古今人物婚姻调查" set "调查日期"='2013-09-11' where "年龄"<100;
update "古今人物婚姻调查" set "调查日期"='-101-12-01' where "年龄">100;

ORACLE外连接实例的更多相关文章

  1. oracle 外连接以及用on和where 的区别

    Oracle  外连接(OUTER JOIN)包括以下: 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应SQL:LEFT/RIGHT/FULL OUT ...

  2. Oracle 外连接和 (+)号的用法

    对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍.1. LEFT OUTER JOIN:左外关联 SELEC ...

  3. oracle——外连接查询

    一.问题描述 有时我们为了保留某个表中的数据,而该表中的数据在另外一个关联表中未必都存在对应,此时就应该试用外连接查询. 比如:两个表,产品表和子产品表 注:子产品的parent_product_id ...

  4. mysql中的内连接,外连接实例详解

    内连接: 只连接匹配的行左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边 ...

  5. Oracle外连接与条件的组合

    由于很少使用SQL 92语法,今天写个outer join的时候被搞晕了.参考了一些例子后整理如下.总结,"inter join on"中的条件是对table进行joining的r ...

  6. Oracle 左连接、右连接、全外连接、(+)号作用

    分类: Oracle Oracle  外连接 (1)左外连接 (左边的表不加限制)       (2)右外连接(右边的表不加限制)       (3)全外连接(左右两表都不加限制) 外连接(Outer ...

  7. Oracle 左连接、右连接、全外连接、(+)号作用、inner join(等值连接) (转载)

    Oracle  外连接 (1)左外连接 (左边的表不加限制)       (2)右外连接(右边的表不加限制)       (3)全外连接(左右两表都不加限制) 外连接(Outer Join) oute ...

  8. Oracle左连接、右连接、全外连接

    Oracle  外连接 (1)左外连接 (左边的表不加限制)(2)右外连接(右边的表不加限制)(3)全外连接(左右两表都不加限制) 外连接(Outer Join) outer join则会返回每个满足 ...

  9. Oracle左连接、右连接、全外连接以及(+)号用法(转)

    +:与附带的字段相连,和“+”相连的字段值,不管是否存在,都会展示 也就是带上相连接的字段 有数据了就显示,没数据就显示为null Oracle  外连接(OUTER JOIN) 左外连接(左边的表不 ...

随机推荐

  1. Leetcode 868. 二进制间距

    868. 二进制间距  显示英文描述 我的提交返回竞赛   用户通过次数201 用户尝试次数220 通过次数207 提交次数396 题目难度Easy 给定一个正整数 N,找到并返回 N 的二进制表示中 ...

  2. 函数使用四:采购发票MIRO BAPI_INCOMINGINVOICE_CREATE

    1. 业务处理(transaction)字段选择: 创建后续借记(subsequent debit)            ItemData                     DE_CRE_IN ...

  3. Python爬虫原理

    前言 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前: 一.爬虫是什 ...

  4. 如何把一个杯子卖到上万元,不学你就OUT了

    我们可以看看一个产品卖到多少钱需要占有什么样的资源: 第1种卖法:卖产品本身的使用价值,只能卖3元/个 如果你将他仅仅当一只普通的杯子,放在普通的商店,用普通的销售方法,也许它最多只能卖3元钱,还可能 ...

  5. Jquery的jqzoom插件的使用(图片放大镜)

    今天学习一下,图片放大镜功能,需要使用插件JQzoom 引入文件 <script type="text/javascript" src="js/jquery.min ...

  6. xubuntu无法进图形界面问题

    http://www.ubuntugeek.com/fix-for-cant-login-after-upgrading-from-ubuntu-13-04-to-ubuntu-13-10.html ...

  7. SQLite 剖析

    由于sqlite对多进程操作支持效果不太理想,在项目中,为了避免频繁读写 文件数据库带来的性能损耗,我们可以采用操作sqlite内存数据库,并将内存数据库定时同步到文件数据库中的方法. 实现思路如下: ...

  8. 逆袭之旅DAY10.东软实训.

  9. python 自然语言处理(二)____获得文本语料和词汇资源

    一, 获取文本语料库 一个文本语料库是一大段文本.它通常包含多个单独的文本,但为了处理方便,我们把他们头尾连接起来当做一个文本对待. 1. 古腾堡语料库 nltk包含古腾堡项目(Project Gut ...

  10. shell 数值运算

    declare数值运算 linux默认变量类型为字符串 declare [+/-] [选项] 变量名 '-' 给变量设定类型属性 '+' 取消变量的类型属性 '-a' 将变量声明为数组型 '-i' 将 ...