1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
# 1.查询有成绩小于等于80的学生的姓名
select distinct name from tb_test1 where fenshu <= 80;
#2.查询不在小于等于80分的学生的姓名
select distinct name from tb_test1 where name not in(
select distinct name from tb_test1 where fenshu <= 80
);
2.原表:
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
---------------------------------------------------
写出此查询语句
#用if写
select s.*, if(s.score >= 60,'pass','fail') mark from tb_score s;
#用case写
select s.*, case when s.score >= 6 then 'pass' else 'fail' end mark from tb_score s;
3. create table testtable1
(
id number,
department varchar(12)
)select * from testtable1
insert into testtable1 values(1,'设计')
insert into testtable1 values(2,'市场')
insert into testtable1 values(3,'售后')
/*
结果
id department
1 设计
2 市场
3 售后
*/
create table testtable2
(
id number,
dptID int,
name varchar(12)
)
insert into testtable2 values(1,1,'张三')
insert into testtable2 values(2,1,'李四')
insert into testtable2 values(3,2,'王五')
insert into testtable2 values(4,3,'彭六')
insert into testtable2 values(5,4,'陈七')
/*
用一条SQL语句,怎么显示如下结果
id dptID department name
1 1 设计 张三
2 1 设计 李四
3 2 市场 王五
4 3 售后 彭六
5 4 黑人 陈七
*/
select t2.id,ifnull(t1.department,'黑人'), t2.dptID,t2.`name` from testtable1 t1 right join testtable2 t2
on t1.id = t2.dptID
4.有如下表:
写一条Sql语句查出,如下表:
select name,round(sum(case when course ='hibernate' then score else 0 end ),0) hibernate ,round(sum(if(course = 'spring',score,0)),0) spring, round(sum(if(course = 'struts',score,0)),0) struts from tb_course
group by name;