查询每门课程成绩都大于80分学生的姓名 查询成绩大于80

转载的sql语句
.1 查询每门课程成绩都大于80分学生的学号
数据库 表 student
name score course
A 85 语文
A 75 数学
A 82 英语
B 75 语文
B 89 数学
B 79 英语
天使美眉90 语文
天使美眉100 数学
天使美眉100 英语

请找出每门课程都超过80分的那个人名字的SQL语句

SQL1:

select name from test.stu
group by name
having count(score) =sum(case when score>80then 1 else 0 end )

SQL2:

select name from stu
group by name
having name not in (
select name from stu
where score <80)

SQL3:

select name from test.stu
group by name
having min(score)>=80



================================================

2. 查询课程001的成绩大于课程002成绩的学号

student表:sno(学号),sname(姓名),sex(性别),dept(系)
course课程表:cno(课程号),课程名(cname)
sc选课表:sno,cno,grade(成绩)

select cno from sc a inner join (select * from sc where cno=(selectcno from course where cname='001')) as b on a.cno>o=(select cnofrom course where cname='002')






================================================

3、关于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 groupby rq
查询每门课程成绩都大于80分学生的姓名 查询成绩大于80
2) select N.rq,N. 胜,M. 负 from
(select rq,count(*) 胜 from tab3 where shengfu='胜'group by rq)Ninner join
(select rq,count(*) 负from tab3 where shengfu='负'group by rq)M onN.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;
4)select time, sum(decode(status,'胜','')) 胜,sum(decode(status,'负','')) 负 from shengfu_table group by time; 

======================================================


4.表中有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 thenb else c end) from tab4


5.一个日期判断的sql语句请取出tab5表中日期(SendTime字段)为当天的所有记录(SendTime字段为datetime型,包含日期与时间)
select * from tab5 t whereto_char(t.SendTime,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')


6.有一张表,里面有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



==================================

7.请用一个sql语句得出结果
从table1,table2中取出如table3所列格式数据

table1

月份mon部门dep 业绩yj
-------------------------------
一月份0110
一月份0210
一月份035
二月份028
二月份049
三月份038

table2

部门dep部门名称depname
--------------------------------
01国内业务一部
02国内业务二部
03国内业务三部
04国际业务部

table3 (result)

部门dep一月份二月份三月份
---------------------------------------------------
0110nullnull
02108null
035null8
04null9null
-------------------------------------------------------
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


8.一个表中的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




9.用一条SQL语句 查询出每门课都大于80分的学生姓名
8.一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.

select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 wheret.bh$amp;
select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 wheret.bh$amp;t1.bh这个是不分的



=================================
10.怎么把这样一个表儿
year month amount
199111.1
199121.2
199131.3
199141.4
199212.1
199222.2
199232.3
199242.4
查成这样一个结果
year m1 m2 m3m4
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


11.拷贝表(拷贝数据,源表名: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;--从已知表复制结构但不包括数据



12.显示文章、提交人和最后回复时间

select a.title,a.username,b.adddate from tablea,(select max(adddate) adddate from table wheretable.title=a.title) b


13.日程安排提前五分钟提醒



14.两张关联表,删除主表中已经在副表中没有的信息
delete from fubiao a wherea.fid not in(select id from zhubiao)


15.有两个表tab12和tab13,均有key和value两个字段,如果tab13的key在tab12中也有,就把tab13的value换为tab12中对应的value

update tab13 set value=(select value from tab12 wheretab12.key=tab13.key)



16.原表:
courseid coursename score
-------------------------------------
1java70
2oracle90
3xml40
4jsp30
5servlet 80
-------------------------------------
为了便于阅读,查询此表后的结果显式如下(及格分数为60):
courseid coursename score mark
---------------------------------------------------
1java70 pass
2oracle 90pass
3xml40 fail
4jsp30 fail
5servlet 80 pass
---------------------------------------------------
select t.courseid,t.coursename,t.score,(case when score>60 then'pass' else 'fail' end) mark from tab14 t


17.表15
a1 a2
1 a
1 b
2 x
2 y
2 z
用select能选成以下结果吗?
1 ab
2 xyz
SELECT a1, replace(max(sys_connect_by_path(a2, ' ')),' ','')NAME
FROM (SELECT a1, a2, rn, LAG(rn) OVER(PARTITIONBY a1 ORDER BY rn) rn1
FROM (SELECT a1, a2, row_number() OVER(ORDER BY a1) rn FROM t)rn)
START WITH rn1 IS NULL
CONNECT BY rn1 = PRIOR rn
GROUP BY a1;


18.题为
有两个表, t1, t2,
Table t1:

SELLER | NON_SELLER
----------
AB
AC
AD
BA
BC
BD
CA
CB
CD
DA
DB
DC

Table t2:

SELLER | BAL
------ --------
A100
B200
C300
D400
要求用SELECT语句列出如下结果:------如A的SUM(BAL)为B,C,D的和,B的SUM(BAL)为A,C,D的和.......
且用的方法不要增加数据库负担,如用临时表等
SELECT SELLER,a.total-t.BAL FROM t,(SELECT SUM(BAL) total FROMt)a;

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/258012.html

更多阅读

一个东北小伙子关于《东北人都是活王八》的看法 东北人

今天在MOP上看见一篇名为《东北人都是活王八》的文章,怎么说呢,相当气愤,也感到疑惑,为什么会对我们东北人产生这么大的偏见。我知道这其中肯定有我们东北人本身有关系,肯定有素质不高的地方,但我想更多的是一些不用大脑思考NB的地域思想

声明:《查询每门课程成绩都大于80分学生的姓名 查询成绩大于80》为网友男人的姿態分享!如侵犯到您的合法权益请联系我们删除