㈠ 按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句
按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句示例如下:
selectA.name ,
(selectB.scorefromtable_scoreBwhereB.type='数学'andA.id=B.id) as数学 ,
(selectB.scorefromtable_scoreBwhereB.type='语文'andA.id=B.id) as语文,
(selectB.scorefromtable_scoreBwhereB.type='英语'andA.id=B.id)as英语,
(selectSUM(B.score)fromtable_scoreBwhereA.id=B.id)assum_score
fromtable_studentAorderbysum_scoreDESC
以上sql语句首先把学生表和成绩表联合查出每个学生的数学、语文、英语成绩,然后通过selectSUM(B.score)fromtable_scoreBwhereA.id=B.id查出每个学生的总成绩。
最后orderbysum_scoreDESC实现按总成绩倒叙排列。
(1)sql筛选语文数学成绩扩展阅读
上述sql语句重点是对as关键字的使用- Alias(别名),通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
表的 SQL Alias 语法
SELECT column_name(s) FROM table_name AS alias_name;
列的 SQL Alias 语法
SELECT column_name AS alias_name FROM table_name;
Alias 实例: 使用表名称别名
假设我们有两个表分别是:"Persons" 和 "Proct_Orders"。我们分别为它们指定别名 "p" 和 "po"。
现在,我们希望列出 "John Adams" 的所有定单。
我们可以使用下面的 SELECT 语句:
SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Proct_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'
㈡ 用SQL语句完成
use tempdb;
--创建成绩表
create table 成绩表
(
学科 varchar(20),
姓名 varchar(20),
成绩 int
);
--插入数据
insert into 成绩表
select '英语','甲',60 union
select '英语','乙',70 union
select '英语','丙',50 union
select '英语','丁',40 union
select '语文','甲',40 union
select '语文','乙',60 union
select '语文','丙',70 union
select '语文','丁',40 union
select '数学','甲',40 union
select '数学','乙',60 union
select '数学','丙',70 union
select '数学','丁',60;
--筛选出成绩相同的信息
select a.学科,a.姓名,b.成绩 from
成绩表 a join 成绩表 b
on a.学科=b.学科 and a.成绩=b.成绩 and a.姓名<>b.姓名
㈢ sql语句筛选及格成绩
以下语句可实现只显示同学的及格成绩:
select 学号,语文=(case when 语文>=60 then 语文 else Null end),数学=(case when 数学>=60 then 数学 else Null end),英语=(case when 英语>=60 then 英语 else Null end) from 成绩表 where 语文>=60 or 数学>=60 or 英语>=60
㈣ 大佬们 sql查询 查询学生学过语文并且学过数学的 怎么查
select 学号 from 学生表 where (select 成绩 from 成绩表 join 课程表 on 成绩表.课程号=课程表.课程号 where 成绩表.学号=学生表.学号 and 课程名='语文')>(select 成绩 from 成绩表 join 课程表 on 成绩表.课程号=课程表.课程号 where 成绩表.学号=学生表.学号 and 课程名='数学')
㈤ 查询每个学生的各科成绩sql语句
1、查询每个学生的各科成绩sql语句:
select a.studentid,a.name,a.sex,v1.score as '语文',v2.score as '数学', v3.score as '英语',v4.score
as ‘哲学’, (v1.score+v2.score+v3.score+v4.score)/4 as ‘平均成绩’ from Stuednt a
left join
(select studentid,score from grade where cid=(select cid from course where cname='语文'))as v1
on a.studentid=v1.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='数学'))as v2
on a.studentid=v2.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='英语'))as v3
on a.studentid=v3.studentid
left join
(select studentid,score from grade where cid=(select cid from course where cname='哲学'))as v4
on a.studentid=v4.studentid
order by a.studentid
2、sql数据库介绍:
(1)SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出"做什么"的命令,"怎么做"是不用使用者考虑的。
(2)SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
(3)SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。
(4)在SQL中,关系模式(模式)称为"基本表"(base table);存储模式(内模式)称为"存储文件"(stored file);子模式(外模式)称为"视图"(view);元组称为"行"(row);属性称为"列"(column)。
㈥ SQL语句查询每个学生的学号、姓名、平均成绩、最高成绩和最低成绩
select 学生表.学号,学生表.姓名,
average(成绩表.成绩) as 平均成绩,
max(成绩表.成绩) as 最高成绩,
min(成绩表.成绩) as 最低成绩
from 学生表 left join 成绩表 on 学生表.学号=成绩表.学号
order by 学生表.学号
成绩表可换成语文、数学、英语等,查询结果就是各个学生相应课程的平均成绩、历史最高成绩、历史最低成绩.
㈦ 语文,数学和英语的成绩怎么用sql语句显示出来
case when语句x0dx0aselect 语文 ,x0dx0a(case 语文x0dx0a when 语文>=80 then '优秀'x0dx0a when 语文>=60 and 语文<80 then '及格'x0dx0a when 语文<60 then '不及格'x0dx0aend) as 语文是否合格,x0dx0a数学,x0dx0a(case 数学x0dx0a when 数学>=80 then '优秀'x0dx0a when 数学>=60 and 语文<80 then '及格'x0dx0a when 数学<60 then '不及格'x0dx0aend) as 数学是否合格,x0dx0a英语,x0dx0a(case 英语x0dx0a when 英语>=80 then '优秀'x0dx0a when 英语>=60 and 英语<80 then '及格'x0dx0a when 英语<60 then '不及格'x0dx0aend) as 英语是否合格,x0dx0a from 成绩表 where ......
㈧ 有个SQL查询语句请教大家: 选出 “语文”和“数学”都选修并且语文成绩比数学成绩高的所有学生的姓名
select aa.sid,s.sname from
(select sc.sid,sc.cid,sc.score,c.cname
from sc inner join cource c on sc.cid = c.cid
where c.cname in('语文','数学')) aa
inner join student s on aa.sid = s.sid
group by aa.sid,s.sname
having count(aa.*) > 1 --此处选出同时选择了“语文”和“数学”两门课的学生
and sum(case aa.cname when '语文' then aa.score else 0 end) > sum(case aa.cname when '数学' then aa.score else 0 end) -- 次数选出“语文”成绩大于“数学”成绩的学生
㈨ 有个SQL查询语句请教大家: 选出 “语文”和“数学”都选修并且语文成绩比数学成绩高的所有学生的姓名
student:s
course:c
teacher:t
sc:sc1,sc2
先分别选语文的和数学的选修学生和分数
1、create
view
yuwen
as
select
sid,score
from
sc1,c
where
c.cid=sc1.cid
and
c.cname=‘语文'
2、create
view
shuxue
as
select
sid,score
from
sc2,c
where
c.cid=sc2.cid
and
c.cname=‘数学'
然后选出以上数据中同时选了两门课程且语文比数学成绩高的学生
3、create
view
student_id
as
select
yuwen.sid
from
yuwen,shuxue
where
yuwen.score>shuxue.score
and
yuwen.sid=shuxue.sid
选出语文成绩比数学成绩高的学生的sid:最后的结果语句就有了:
4、select
s.sname
from
s,student_id
where
s.sid
=
student_id
也可以这样写:
1、create
view
yuwen
as
select
sname,sc1.sid,score
from
s,sc1,c
where
s.sid
=sc1.sid
and
c.cid=sc1.cid
and
c.cname=‘语文'
2、create
view
shuxue
as
select
sname,
sc2.sid,score
from
sc2,c
where
c.cid=sc2.cid
and
c.cname=‘数学'
3、select
sname
from
(select
yuwen.sname
from
yuwen,shuxue
where
yuwen.score>shuxue.score
and
yuwen.sid=shuxue.sid)
以上是一个详细的分析过程。写在一个句子里的话句子结构就有点复杂了。希望网友们补齐啊。