Student (Sno Sname Ssex Sage Sdep)
Course(Cno Cname Teacher)
SC(Sno Cno Grade)
1.顯示Student表中所有資訊,要求在系名前面加上學院名。
2.顯示學生的各科成績,要求輸出學號、姓名、成績、等級。其中等級按成績劃分,90分以上為“優秀”, 80分以上為“良好”, 70分以上為“中等”, 60分以上為“及格”, 60分以下為“不及格”。
uj5u.com熱心網友回復:
create table #tmp_Student(Sno int,
Sname nvarchar(20),
Ssex nvarchar(5),
Sage int,
Sdep nvarchar(20)
)
insert into #tmp_Student
select 1, N'張三',N'男', 21 ,N'A學院'
union
select 2, N'李四',N'男', 21 ,N'B學院'
union
select 3, N'王五',N'男', 22 ,N'C學院'
union
select 4, N'李雷',N'男', 21 ,N'A學院'
union
select 5, N'杰克',N'男', 20 ,N'B學院'
create table #tmp_Course(
Cno int,
Cname nvarchar(20),
CTeacher nvarchar(20)
)
insert into #tmp_Course
select 1, N'英語',N'李老師'
union
select 2, N'數學',N'馬老師'
union
select 3, N'語文',N'張老師'
create table #tmp_SC(
Sno int,
Cno int,
Grade int
)
insert into #tmp_SC
select 1, 1, 90
union
select 1, 2, 80
union
select 1, 3, 70
union
select 2, 1, 90
union
select 2, 2, 100
union
select 2, 3, 59
union
select 3, 1, 40
union
select 3, 2, 70
union
select 3, 3, 59
union
select 4, 1, 100
union
select 4, 2, 100
union
select 4, 3, 100
union
select 5, 1, 90
union
select 5, 2, 100
union
select 5, 3, 80
select * from #tmp_Student
select * from #tmp_Course
select * from #tmp_SC
--1. (缺少系名相關表結構)
--2. (缺少分數表的表結構) 大致語法如下
select A.sno,
A.sname,
c.Cname,
b.grade,
case when b.grade >= 90 then N'優秀'
when b.grade >= 80 and b.grade < 90 then N'良好'
when b.grade >= 70 and b.grade < 80 then N'中等'
when b.grade >= 60 and b.grade < 70 then N'及格'
else N'不及格' end as grade
from #tmp_Student A
left join #tmp_SC B on A.sno = b.sno
left join #tmp_course C on b.cno = c.cno
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/16127.html
標籤:疑難問題
上一篇:又一個 SQL 句法問題。
