检索出sc表中至少选修一门课程的学生学号的记录。
表结构:
CREATE TABLE sc (
sno char(7) ,
cno char(7) ,
score decimal(4,1),
point decimal(2,1),
PRIMARY KEY (sno,cno)
) ;
请问这个查询语句要怎么写?
根据学号进行分组,判断having count(1)>=1
select sno from sc group by sno having count(1)>=1
select sno from sc group by sno having count(sno)>0
你这表里哪个字段是选修?还是说选修标识在其他表里?或者说所有课程都是选修?
这一个表count大于0没意义啊,如果所有课程都是选修的话,那么只要存在于这个表的所有学生都会满足这个条件。
所以你题目是不是没给完整?
至少选修一门课程等价于不存在没有选修的学生。
select sho
from 表
where not exists (select sno
from表
where cno is null)