`
ymq267
  • 浏览: 130522 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

oracle常见的经典查询语句(二)

阅读更多
01.   tmp表中有如下记录(建表 SQL见emp.sql)



RQ         SHENGFU

---------- ----------

2005-05-09 WIN

2005-05-09 WIN

2005-05-09 LOSE

2005-05-09 LOSE

2005-05-10 WIN

2005-05-10 LOSE

2005-05-10 LOSE



要求格式为:



RQ                WIN       LOSE

---------- ---------- ----------

2005-05-10          1          2

2005-05-09          2          2





答案:select rq,  count(case when shengfu='WIN' then 'WIN' else null end) WIN, count(case when shengfu='LOSE' then 'LOSE' else null end) LOSE from tmp group by rq ;





02.   查询当前月有多少天



答案:SQL> select trunc(add_months(sysdate,1),'month') - trunc(sysdate,'month') from dual;





03.   pages表有四个字段,id, url,title,body。如图:



ID        URL                    TITLE          BODY

--------- ----------- ------------------------- ------

1        http://www.baidu.com    新闻          党报评事业单位发绩效工资 砸铁饭碗再砸金饭碗

2        http://www.sina.com     baidu新闻     假唱假演奏最高罚款3000元 10月1日起施行

3        http://www.yahoo.com    搜索结果      www.baidu.com/search/url_submit.html - 网页快

4        http://www.baidu.com    新闻          垃圾焚烧产生致癌物 专家告诫中国勿重蹈日本覆辙



要求格式为:



ID                   CUNT

--------------------------------------------------------------------------------

3                    www.baidu.com/search/url_submit.html - 网页快照 - 类似结果

2                    baidu新闻

1                    http://www.baidu.com

4                    http://www.baidu.com



答案:select id,body cunt from pages where body  like '%baidu%' union all select id,title  from pages where title  like '%baidu%' union all select id,url from pages where url like '%baidu%';



ID                   URL

--------------------------------------------------------------------------------

1                    http://www.baidu.com

4                    http://www.baidu.com

2                    baidu新闻

3                    www.baidu.com/search/url_submit.html - 网页快照 - 类似结果





答案:select id,url from pages where url like '%baidu%' union all select id,title  from pages where title  like '%baidu%' union all select id,body cunt from pages where body  like '%baidu%';





04. 现有 STUDENT(学生), COURSE(课程), SC(成绩)表,完成以下需求(建表语句在 emp.sql

中,综合考察)

a)   查询选修课程为 web的学员学号和姓名



答案:SQL> Select s.name,s.sid from student s, (Select sid from sc Where cid=(select cid from course where name='web' )) s1 where s.sid=s1.sid;



b)  查询课程编号为 2的学员姓名和单位



答案:select * from student s,(select sid from  sc where cid=2) s1 where s.sid=s1.sid;





b)   查询不选修4号课程的学员姓名和单位



答案:SQL> select distinct s.* from student s,(Select sid from sc where cid!=4) s1 where s.sid=s1.sid;





d)  查询选修全部课程的学员姓名和单位



答案:SQL> select * from student where sid=(select sid from sc group by sid having  count(*)=(select count(distinct cid) from sc));



e)  查询选修课程超过 3门的学员姓名和单位



答案:SQL> select * from student s,(select sid from sc group by sid having  count(*)>3) s1 where s.sid=s1.sid;



f)  找出没有选修过 Teacher LI讲授课程的所有学生姓名



答案:select distinct s1.* from student s1 where s1.sid not in ( select  s.sid from sc s,(select distinct cid from course where  TEACHER='Teacher LI') c  where s.cid=c.cid) ;





g)  列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩 



答案:SQL> select s.*,sco from student s,(select distinct sid,avg(SCORE) sco from sc where score<60 group by sid) s1 where s.sid=s1.sid;





h)  列出既学过1号课程,又学过2号课程的所有学生姓名



答案:SQL> select * from student s, (select sid from sc where cid=1) s1 ,(select sid from sc where cid=2) s2 where s.sid=s1.sid and s.sid=s2.sid;



i)  列出1号课成绩比2号课成绩高的所有学生的学号,姓名和 1号课和 2号课的成





答案:select * from student s, (select sid,SCORE from sc where cid=1) s1 ,(select sid,SCORE from sc where cid=2) s2 where s.sid=s1.sid and s.sid=s2.sid and s1.score>s2.score;





05. 现有test表,表中数据如图所示:

  

a)  连续的编号要求如下格式

  

     BEGIN        END

---------- ----------

         1          6

         8          9

        11         14

        18         19





答案:Select min(id) begin,max(id) end from test group by id-rownum order by id-rownum



b)  不连续的编号要求如下格式



        BEGIN        END

---------- ----------

         8          9

        11         14

        18         19





答案:SQL> Select min(id) begin,max(id) end from test group by id-rownum having id-rownum!=0 order by id-rownum;







06.(统计各部门,各职位的人数)



DEPTNO      CLERK   SALESMAN  PRESIDENT    MANAGER    ANALYST

------ ---------- ---------- ---------- ---------- ----------

    30          1          4          0          1          0

    20          2          0          0          1          2

    10          1          0          1          1          0



答案:select deptno,  count(case when job='CLERK' then 'CLERK' else null end)  CLERK, count(case when job = 'SALESMAN' then 'SALESMAN' else null end)  SALESMAN, count(case when job='PRESIDENT' then 'PRESIDENT' else null end)  PRESIDENT, count(case when job='MANAGER' then 'MANAGER' else null end)  MANAGER, count(case when job='ANALYST' then 'ANALYST' else null end)  ANALYST from emp group by deptno;





07. 根据EMP表数据产生如下格式的报表(统计各职位,各部门的人数)(06题的变体)







Job                   10          20       30

------------- ---------- ----------- ---------

                   0          0          1

CLERK              1          2          1

SALESMAN           0          0          4

PRESIDENT          1          0          0

MANAGER            1          1          1

ANALYST            0          2          0





答案:select job ,  count(case when deptno='10' then '10' else null end) as "10",  count(case when deptno='20' then '20' else null end)  as "20",  count(case when deptno='30' then '30' else null end) as "30"  from emp group by job;



08. 按照如下格式显示 7369号员工的信息



Empno  key     value

------------ ------------ ---------------------------

7369    comm

7369               deptno   20          

7369               ename   smith

7369               hiredate                1980-12-17

7369               job                          cleak

7369               mgr                        7902

7369               sal                           800





答案:select empno, 'ENAME' as KEY, ename VALUE from emp where empno = 7369

  union 

select empno, 'JOB', job from emp where empno = 7369

  union 

select empno, 'HIREDATE', to_char(hiredate,'yyyy-mm-dd') a from emp where empno = 7369

  union 

select empno, 'MGR', to_char(mgr) from emp where empno = 7369

  union

select empno, 'SAL', to_char(sal) from emp where empno = 7369

  union 

select empno, 'COMM', to_char(comm) from emp where empno = 7369

  union

select empno, 'DEPTNO', to_char(deptno) from emp where empno = 7369;

分享到:
评论

相关推荐

    Oracle报表经典语句

    本文档将深入解析几个经典的Oracle报表SQL语句,这些语句涉及到了Oracle中的高级功能,如窗口函数、联合查询等,并通过实际案例展示了如何构造报表。 #### 二、SQL语句分析 ##### 1. 分类汇总与总计 此段代码展示...

    经典的ORACLE查询语句教学资料

    "第二天"的资料可能涉及了SQL基础,讲解了如何使用SELECT语句进行基本的数据查询,包括选择字段、过滤记录(WHERE子句)、排序结果(ORDER BY子句)、分组数据(GROUP BY子句)和聚合函数(COUNT、SUM、AVG、MAX、...

    oracle备份与经典语句

    以上就是关于“Oracle备份与经典语句”的主要知识点,涵盖了Oracle备份的重要性、类型、语句及恢复策略。了解并掌握这些内容,对Oracle数据库管理员来说至关重要,能有效保护数据安全,确保业务正常运行。

    ORACLE经典常用语句总结

    在IT领域,尤其是在数据库管理与开发中,Oracle作为一款广泛使用的数据库管理系统,其经典常用的SQL语句对于数据库管理员(DBA)以及开发人员而言至关重要。本文将深入解析Oracle中的关键SQL语句,涵盖表约束、索引...

    Oracle经典SQL语句

    ORACLE经典语句汇总 -- 字符串左填充和右填充,默认填充空格 -- 产生1~99行数据,少于一位则补0 -- 刪除相同行 -- 随机数 -- 产生业务流水号 -- 查询某张表中有哪些字段 -- 自循环表中 由叶子节点查父节点 -- 查子...

    oracle关于日期的查询语句

    本篇将深入探讨Oracle关于日期的查询语句及其相关知识点。 1. 数据类型: Oracle提供了多种日期和时间数据类型,包括DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE以及TIMESTAMP WITH LOCAL TIME ZONE。其中,DATE...

    oracle 数据库46道经典查询

    根据给定文件的信息,我们可以梳理出46道经典的Oracle数据库查询题目所涉及的关键知识点,包括基本的表结构设计、数据插入以及复杂的SQL查询语句。下面将详细介绍这些知识点。 ### 表结构设计 #### 学生表...

    ORACLE__SQL语句教学(附有sql最常用经典语句)

    本资源"ORACLE__SQL语句教学(附有sql最常用经典语句)"显然是一个针对Oracle SQL的深入学习资料,旨在帮助数据库编程者提升技能,成为真正的高手。 首先,让我们来看看SQL的基本概念。SQL是一种用于管理关系型...

    Oracle经典语句

    ### Oracle经典语句详解 #### 1. Oracle安装初始账号密码 在安装Oracle数据库时,系统会自动创建一些默认的用户账号,这些账号对于管理数据库至关重要。常见的几个默认账号包括: - **internal/oracle**: 这是...

    oracle常用经典语句

    本文将深入探讨Oracle中的常用经典语句以及备份与恢复技术。 一、Oracle常用经典语句 1. 数据查询:SQL(Structured Query Language)是与数据库交互的语言基础,包括SELECT语句用于数据查询。例如,查询所有员工...

    Oracle经典建表语句

    ### Oracle经典建表语句详解 #### 一、概述 在数据库管理中,创建表是一项基本而重要的操作。本文档将详细介绍两个Oracle经典建表语句案例:`DHC_BY_GOODSBUY`表与`DHC_BY_GOODSBUYTOTAL`表的创建过程,并额外解析...

    20个Oracle经典面试查询语句

    保证你面试绝对会用到的SQL查询语句,快准备下吧

    oracle常用经典sql查询

    本资源“oracle常用经典sql查询”汇集了Oracle环境中的一些常见且实用的SQL查询语句,帮助用户提高数据库操作效率。以下是对这些经典查询语句的详细解读: 1. **基本查询操作** - `SELECT * FROM table_name;`:这...

    oracle常用经典sql查询.rar

    了解SQL的基本语法是掌握Oracle SQL查询的前提,包括SELECT语句用于查询数据,INSERT语句用于插入新记录,UPDATE语句用于修改已有记录,而DELETE语句则用于删除数据。 在Oracle SQL查询中,有几种常见的高级查询...

    Oracle-Sql语句资料oracle+110个常用函数经典SQL语句大全.zip

    Oracle_Sql语句资料oracle+110个常用函数经典SQL语句大全,可供学习参考。

Global site tag (gtag.js) - Google Analytics