- 浏览: 58284 次
- 性别:
- 来自: 沈阳
最新评论
1、关于group by表内容:
2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负
如果要生成下列结果, 该如何写sql语句?
胜 负
2005-05-09 2 2
2005-05-10 1 2
答案:
1) select rq,sum(case when shengfu='胜' then 1 else 0 end) as胜,sum(case when shengfu='负' then 1 else 0 end) as负from tab3 group by rq
2) select N.rq,N. 胜,M. 负 from
(select rq,count(*) 胜 from tab3 where shengfu='胜'group by rq)N inner join
(select rq,count(*) 负from tab3 where shengfu='负'group by rq)M on N.rq=M.rq
3) select a.rq,a. 胜 as胜,b.负 as 负from
(select rq,count(shengfu) 胜from tab3 where shengfu='胜' group by rq) a,
(select rq,count(shengfu) 负from tab3 where shengfu='负' group by rq) b
where a.rq=b.rq;
1.关于group by表内容:
2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负
如果要生成下列结果, 该如何写sql语句?
胜 负
2005-05-09 2 2
2005-05-10 1 2
--------------------------------------------------------------------------------------------
1) select rq,sum(case when shengfu='胜' then 1 else 0 end) as胜,sum(case when shengfu='负' then 1 else 0 end) as负from tab3 group by rq
2) select N.rq,N. 胜,M. 负 from
(select rq,count(*) 胜 from tab3 where shengfu='胜'group by rq)N inner join
(select rq,count(*) 负from tab3 where shengfu='负'group by rq)M on N.rq=M.rq
3) select a.rq,a. 胜 as胜,b.负 as 负from
(select rq,count(shengfu) 胜from tab3 where shengfu='胜' group by rq) a,
(select rq,count(shengfu) 负from tab3 where shengfu='负' group by rq) b
where a.rq=b.rq;
2.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
--------------------------------------------------------------------------------------------
select (case when a>b then a else b end),(case when b>c then b else c end) from tab4
3.一个日期判断的sql语句
请取出tab5表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)
---------------------------------------------------------------------------------------------
select * from tab5 t where to_char(t.SendTime,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')
4.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
显示格式:
语文 数学 英语
及格 优秀 不及格
-------------------------------------------------------------------------------------------
select
(case when语文>=80 then '优秀' when语文>60 then '及格' else '不及格' end) as 语文,
(case when 数学>=80 then '优秀' when数学>60 then '及格' else '不及格' end) as数学,
(case when英语>=80 then '优秀' when英语>60 then '及格' else '不及格' end) as 英语
from tab5
5.请用一个sql语句得出结果
从table1,table2中取出如table3所列格式数据
table1
月份mon 部门dep 业绩yj
-------------------------------
一月份 01 10
一月份 02 10
一月份 03 5
二月份 02 8
二月份 04 9
三月份 03 8
table2
部门dep 部门名称depname
--------------------------------
01 国内业务一部
02 国内业务二部
03 国内业务三部
04 国际业务部
table3 (result)
部门dep 一月份 二月份 三月份
---------------------------------------------------
01 10 null null
02 10 8 null
03 5 null 8
04 null 9 null
-------------------------------------------------------------------------------------------
1)
select t.depname,
(select yj from tab6 where mon='一月份' and dep=t.dep) 一月份,
(select yj from tab6 where mon='二月份' and dep=t.dep) 二月份,
(select yj from tab6 where mon='三月份' and dep=t.dep) 三月份
from tab7 t
---------------------------------------------------------
2)求总销售额
select
sum(case when t1.mon='一月份' then t1.yj else 0 end) 一月份,
sum(case when t1.mon='二月份' then t1.yj else 0 end) 二月份,
sum(case when t1.mon='三月份' then t1.yj else 0 end) 三月份
from tab7 t,tab6 t1 where t.dep=t1.dep
6.一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。
-------------------------------------------------------------------------------
select id,count(*) from tab8 group by id having count(*)>1
select * from (select tab8,count(id) as num from tab8 group by id) t where t.num>1
7.用一条SQL语句 查询出每门课都大于80分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
a): select distinct name from tab9 where name not in (select distinct name from tab9 where fengshu<=80)
b): select * from tab9 t7 where t7.name not in (select t5.name from (select * from (select t1.kecheng from tab9 t1 group by t1.kecheng),(select t2.name from tab9 t2 group by t2.name)) t4,(select * from tab9) t5 where t4.name = t5.name and t4.kecheng = t5.kecheng and t5.fengshu < 80)
8.一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 where t.bh<>t1.bh这个是分主客场的
select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 where t.bh<>t1.bh and t.bh>t1.bh这个是不分的
9.怎么把这样一个表儿
year month amount
1991 1 1.1
1991 2 1.2
1991 3 1.3
1991 4 1.4
1992 1 2.1
1992 2 2.2
1992 3 2.3
1992 4 2.4
查成这样一个结果
year m1 m2 m3 m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4
a):
select t.year,
(select a.amout from tab11 a where a.month=1 and a.year=t.year) m1,
(select b.amout from tab11 b where b.month=2 and b.year=t.year) m2,
(select c.amout from tab11 c where c.month=3 and c.year=t.year) m3,
(select d.amout from tab11 d where d.month=4 and d.year=t.year) m4
from tab11 t group by t.year
10.拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL: insert into b(a, b, c) select d,e,f from b;
create table test as select * from dept; --从已知表复制数据和结构
create table test as select * from dept where 1=2; --从已知表复制结构但不包括数据
11.显示文章、提交人和最后回复时间
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
12.日程安排提前五分钟提醒
13.两张关联表,删除主表中已经在副表中没有的信息
delete from fubiao a where a.fid not in(select id from zhubiao)
14.有两个表tab12和tab13,均有key和value两个字段,如果tab13的key在tab12中也有,就把tab13的value换为tab12中对应的value
update tab13 set value=(select value from tab12 where tab12.key=tab13.key)
15.原表:
courseid coursename score
-------------------------------------
1 java 70
2 oracle 90
3 xml 40
4 jsp 30
5 servlet 80
-------------------------------------
为了便于阅读,查询此表后的结果显式如下(及格分数为60):
courseid coursename score mark
---------------------------------------------------
1 java 70 pass
2 oracle 90 pass
3 xml 40 fail
4 jsp 30 fail
5 servlet 80 pass
---------------------------------------------------
select t.courseid,t.coursename,t.score,(case when score>60 then 'pass' else 'fail' end) mark from tab14 t
16.表15
a1 a2
1 a
1 b
2 x
2 y
2 z
用select能选成以下结果吗?
1 ab
2 xyz
17.题为
有两个表, t1, t2,
Table t1:
SELLER | NON_SELLER
----- -----
A B
A C
A D
B A
B C
B D
C A
C B
C D
D A
D B
D C
Table t2:
SELLER | BAL
------ --------
A 100
B 200
C 300
D 400
要求用SELECT 语句列出如下结果:------如A的SUM(BAL)为B,C,D的和,B的SUM(BAL)为A,C,D的和.......
且用的方法不要增加数据库负担,如用临时表等
2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负
如果要生成下列结果, 该如何写sql语句?
胜 负
2005-05-09 2 2
2005-05-10 1 2
答案:
1) select rq,sum(case when shengfu='胜' then 1 else 0 end) as胜,sum(case when shengfu='负' then 1 else 0 end) as负from tab3 group by rq
2) select N.rq,N. 胜,M. 负 from
(select rq,count(*) 胜 from tab3 where shengfu='胜'group by rq)N inner join
(select rq,count(*) 负from tab3 where shengfu='负'group by rq)M on N.rq=M.rq
3) select a.rq,a. 胜 as胜,b.负 as 负from
(select rq,count(shengfu) 胜from tab3 where shengfu='胜' group by rq) a,
(select rq,count(shengfu) 负from tab3 where shengfu='负' group by rq) b
where a.rq=b.rq;
1.关于group by表内容:
2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负
如果要生成下列结果, 该如何写sql语句?
胜 负
2005-05-09 2 2
2005-05-10 1 2
--------------------------------------------------------------------------------------------
1) select rq,sum(case when shengfu='胜' then 1 else 0 end) as胜,sum(case when shengfu='负' then 1 else 0 end) as负from tab3 group by rq
2) select N.rq,N. 胜,M. 负 from
(select rq,count(*) 胜 from tab3 where shengfu='胜'group by rq)N inner join
(select rq,count(*) 负from tab3 where shengfu='负'group by rq)M on N.rq=M.rq
3) select a.rq,a. 胜 as胜,b.负 as 负from
(select rq,count(shengfu) 胜from tab3 where shengfu='胜' group by rq) a,
(select rq,count(shengfu) 负from tab3 where shengfu='负' group by rq) b
where a.rq=b.rq;
2.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
--------------------------------------------------------------------------------------------
select (case when a>b then a else b end),(case when b>c then b else c end) from tab4
3.一个日期判断的sql语句
请取出tab5表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)
---------------------------------------------------------------------------------------------
select * from tab5 t where to_char(t.SendTime,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')
4.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
显示格式:
语文 数学 英语
及格 优秀 不及格
-------------------------------------------------------------------------------------------
select
(case when语文>=80 then '优秀' when语文>60 then '及格' else '不及格' end) as 语文,
(case when 数学>=80 then '优秀' when数学>60 then '及格' else '不及格' end) as数学,
(case when英语>=80 then '优秀' when英语>60 then '及格' else '不及格' end) as 英语
from tab5
5.请用一个sql语句得出结果
从table1,table2中取出如table3所列格式数据
table1
月份mon 部门dep 业绩yj
-------------------------------
一月份 01 10
一月份 02 10
一月份 03 5
二月份 02 8
二月份 04 9
三月份 03 8
table2
部门dep 部门名称depname
--------------------------------
01 国内业务一部
02 国内业务二部
03 国内业务三部
04 国际业务部
table3 (result)
部门dep 一月份 二月份 三月份
---------------------------------------------------
01 10 null null
02 10 8 null
03 5 null 8
04 null 9 null
-------------------------------------------------------------------------------------------
1)
select t.depname,
(select yj from tab6 where mon='一月份' and dep=t.dep) 一月份,
(select yj from tab6 where mon='二月份' and dep=t.dep) 二月份,
(select yj from tab6 where mon='三月份' and dep=t.dep) 三月份
from tab7 t
---------------------------------------------------------
2)求总销售额
select
sum(case when t1.mon='一月份' then t1.yj else 0 end) 一月份,
sum(case when t1.mon='二月份' then t1.yj else 0 end) 二月份,
sum(case when t1.mon='三月份' then t1.yj else 0 end) 三月份
from tab7 t,tab6 t1 where t.dep=t1.dep
6.一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。
-------------------------------------------------------------------------------
select id,count(*) from tab8 group by id having count(*)>1
select * from (select tab8,count(id) as num from tab8 group by id) t where t.num>1
7.用一条SQL语句 查询出每门课都大于80分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
a): select distinct name from tab9 where name not in (select distinct name from tab9 where fengshu<=80)
b): select * from tab9 t7 where t7.name not in (select t5.name from (select * from (select t1.kecheng from tab9 t1 group by t1.kecheng),(select t2.name from tab9 t2 group by t2.name)) t4,(select * from tab9) t5 where t4.name = t5.name and t4.kecheng = t5.kecheng and t5.fengshu < 80)
8.一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 where t.bh<>t1.bh这个是分主客场的
select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 where t.bh<>t1.bh and t.bh>t1.bh这个是不分的
9.怎么把这样一个表儿
year month amount
1991 1 1.1
1991 2 1.2
1991 3 1.3
1991 4 1.4
1992 1 2.1
1992 2 2.2
1992 3 2.3
1992 4 2.4
查成这样一个结果
year m1 m2 m3 m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4
a):
select t.year,
(select a.amout from tab11 a where a.month=1 and a.year=t.year) m1,
(select b.amout from tab11 b where b.month=2 and b.year=t.year) m2,
(select c.amout from tab11 c where c.month=3 and c.year=t.year) m3,
(select d.amout from tab11 d where d.month=4 and d.year=t.year) m4
from tab11 t group by t.year
10.拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL: insert into b(a, b, c) select d,e,f from b;
create table test as select * from dept; --从已知表复制数据和结构
create table test as select * from dept where 1=2; --从已知表复制结构但不包括数据
11.显示文章、提交人和最后回复时间
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
12.日程安排提前五分钟提醒
13.两张关联表,删除主表中已经在副表中没有的信息
delete from fubiao a where a.fid not in(select id from zhubiao)
14.有两个表tab12和tab13,均有key和value两个字段,如果tab13的key在tab12中也有,就把tab13的value换为tab12中对应的value
update tab13 set value=(select value from tab12 where tab12.key=tab13.key)
15.原表:
courseid coursename score
-------------------------------------
1 java 70
2 oracle 90
3 xml 40
4 jsp 30
5 servlet 80
-------------------------------------
为了便于阅读,查询此表后的结果显式如下(及格分数为60):
courseid coursename score mark
---------------------------------------------------
1 java 70 pass
2 oracle 90 pass
3 xml 40 fail
4 jsp 30 fail
5 servlet 80 pass
---------------------------------------------------
select t.courseid,t.coursename,t.score,(case when score>60 then 'pass' else 'fail' end) mark from tab14 t
16.表15
a1 a2
1 a
1 b
2 x
2 y
2 z
用select能选成以下结果吗?
1 ab
2 xyz
17.题为
有两个表, t1, t2,
Table t1:
SELLER | NON_SELLER
----- -----
A B
A C
A D
B A
B C
B D
C A
C B
C D
D A
D B
D C
Table t2:
SELLER | BAL
------ --------
A 100
B 200
C 300
D 400
要求用SELECT 语句列出如下结果:------如A的SUM(BAL)为B,C,D的和,B的SUM(BAL)为A,C,D的和.......
且用的方法不要增加数据库负担,如用临时表等
发表评论
-
Oracle 常用语法练习
2010-02-10 16:37 1013--1.列出所有员工及直接上级的姓名 select e.ena ... -
如何高效删除Oracle数据库中的重复数据
2010-01-15 10:37 1050重复数据删除技术可以 ... -
Oracle数据库常用的操作命令
2009-12-28 11:55 1815Oracle数据库常用的操作命令 常用的数据字典表:tab ... -
Oracle时所记录的一些命令
2009-12-11 17:17 8481、set linesize 100; 设置长度 2. ... -
如何在Oracle直接使用地址来创建Database Link (DBLink)
2009-12-11 16:29 1473Sql代码 1.create public database ... -
oracle grant
2009-12-10 13:57 6579oracle grant 授权语句--select * fr ... -
oracle移植到mysql
2009-11-30 11:43 935一、从Oracle移植到MySQL主要有六个方面的内容需要移植 ... -
Oracle笔试题
2009-11-10 12:49 1801一、选择题 1.当你执行以下查询语句: SELE ... -
ORA-01502 state unusable错误成因和解决方法
2009-07-27 17:23 1295对于普通表中的不同索引(非唯一索引),我们有两种方法解决这个问 ... -
启动oracle 10g用scott/tige连接出现the account is locked
2009-07-01 08:31 1108在plsql developer中要是以scott/tiger ... -
数据库设计
2009-06-29 15:02 884第一范式,所有的属性都是单一值,属性只表示单一的意义。(记录可 ... -
oracle学习
2009-06-29 14:54 765多表查询时不加where子 ... -
oracle学习
2009-06-29 13:38 820Oracle SQL(Oracle 9i 9.2.0.1.0) ...
相关推荐
Oracle SQL 面试题知识点总结 本文档总结了 Oracle SQL 面试题中的常见知识点,涵盖了 SQL 语句编写、表操作、数据查询、数据分析等方面的内容。 一、SQL 语句编写 1. 查询每门课都大于 80 分的学生姓名: 可以...
### Java面试SQL语句大总结 #### 一、SQL基础知识概览 在Java开发工作中,对SQL的理解与应用是至关重要的。SQL(Structured Query Language,结构化查询语言)是一种用于管理关系数据库的标准语言,它主要分为以下...
Oracle SQL 优化是提高数据库性能的关键技术之一,尤其是在处理大量数据和复杂查询时。以下是一些重要的优化策略和技巧: 1. **执行路径优化**:Oracle 提供高速缓冲(Cache Buffering)机制来加速单表查询,但对于...
从给定的Oracle SQL面试题中,我们可以提炼出多个关键知识点,这些知识点涵盖了SQL查询、数据操作、表结构设计以及Oracle数据库的一些高级特性。以下是对这些知识点的详细解析: ### 1. 数据分组与聚合函数 在第一...
题目包含:1.基本SQL-SELECT语句 2.过滤和排序数据 3.单行函数 4.多表查询 5.分组函数 6.子查询 7.创建和管理表 8.数据处理 9.约束 10.视图 11.数据库对象 12.企业sql笔试题目 等
SQL 和 ORACLE 面试题知识点总结 在本节中,我们将从数据库基础、SQL 语言、视图、完整性约束、第三范式、ER 模型、索引、事务、锁、死锁、存储过程、触发器 等方面总结 SQL 和 ORACLE 面试题的知识点。 数据库...
以上就是Oracle面试中可能涉及到的一些SQL查询语句的知识点详解。这些查询语句涵盖了Oracle数据库管理的各个方面,包括表空间管理、数据库对象管理、性能监控等,对于准备面试或日常工作中遇到的问题都非常实用。
### SQL与Oracle面试知识点解析 #### 1. 冷备份与热备份的不同点及各自的优点 - **冷备份**:通常在数据库完全关闭的情况下进行,适用于全盘备份。其主要优点在于备份速度快、数据一致性高,恢复过程简单快速。缺点...
深圳华为等大型企业的面试题可能涵盖这些基础内容,同时也可能涉及更高级的主题,如Oracle的RAC集群、SQL的窗口函数、存储过程的编写和优化等。因此,全面掌握Oracle和SQL数据库的知识对于求职者至关重要。
oracle sql面试题
oracle sql 面试题,适合中级程序员面试,报表sql,很实用。
以下是一些常见的SQL知识点和Oracle相关的面试题: 1. **表的创建与管理**: - 创建表时,避免使用SQL关键字作为表名或字段名,例如`insert`, `use`等。 - 在Oracle中,可以使用`CREATE TABLE`命令创建表,并设置...
5. **性能优化**:Oracle面试通常会涵盖如何诊断和解决性能问题,如使用EXPLAIN PLAN分析查询执行路径,调整SQL语句,或通过索引优化提高查询速度。 6. **数据库设计**:面试者可能需要展示他们对数据库设计原则的...
SQL Server和Oracle企业面试题知识点总结 本文档总结了SQL Server和Oracle企业面试题中的重要知识点,从触发器、存储过程、内存泄漏、动态查询、游标等方面进行了详细的解释和分析。 一、触发器 * 触发器是一种...
在面试中,面试官常常会考察候选人对于Oracle数据库管理、备份恢复、性能优化等核心概念的理解。以下是对题目中涉及的一些关键知识点的详细解释: 1. **冷备份与热备份**:冷备份是在数据库关闭状态下进行的,它...
"Oracle 面试及答案-经典.doc" 本文档主要讨论 Oracle 面试中的基础概念和执行计划,包括表连接方式、等连接、非等连接、自连接、外连接、hash join、merge join、nest loop、index join 等,并对各种连接方式进行...
这份"ORACLE面试题PDF"很可能包含了关于Oracle数据库管理、SQL查询、存储结构、性能优化等多个方面的常见面试问题和解答,对于准备Oracle相关职位面试或者巩固数据库知识的人来说是非常有价值的资源。 PDF文件...
1. Oracle和SQL面试准备:文档中提到了“部分常见ORACLE面试题以及SQL注意事项”,这暗示文档中包含了针对Oracle数据库和SQL语言的面试准备知识点。由于文件中对创建表和SQL语句有具体的描述,我们可以推断文档可能...
【描述】:“ORACLE,sql server笔试题目+答案,有需要的朋友可以下载下来作为公司笔试的试卷”表明这个压缩包文件包含了针对这两个数据库系统的面试或笔试题目及相应的解答。这样的资源对于准备面试或自我提升数据库...