我一直在練習DBMS查詢,我堅持使用下面的SQL查詢:編寫一個sql來檢索所有他/她嘗試過的課程中所有S級學生的名字?
編寫一個sql來檢索所有他/她嘗試過的課程中所有S級學生的名字?
以下是我的表和代碼
create table COURSE
(
cId int primary key,
cName varchar(30),
credits int not null
);
create table student
(
usn int primary key,
sname varchar(20),
dno int
);
create table RESULT
(
SUsn int,
CCode int,
Grade char,
primary key(SUsn,CCode)
);
代碼:
select S.sname
from student S inner join result R on S.usn = R.susn
where grade = 'S'
group by S.usn,S.sname
having count(*) in (
select count(*) from result
group by susn
);
可我知道我要去哪裏錯了嗎?請幫幫我。
如果等級可以爲空(它未聲明爲非空),則需要添加對空值的檢查。 – mathguy
@GordonLinoff是否有任何其他方式來寫這個SQL作爲即時通訊不與案件使用情況? –
你可以但會使事情複雜化。藉此機會學習新的東西。檢查[** CASE **](http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm)sintaxis –