会SQL2000的进来

2025-12-05 12:50:22
推荐回答(6个)
回答1:

你的提问不全面,我也姑且不全面的回答你好了。

假定你的表名为“报名表”,字段分别为“姓名”、“准考证”、“报考科目”

再假定报考科目中所有报考科目代码直接连接不添加分割符号

比如报考1、2、3,则报考科目字段内容为“123”

那么查询所有报考课程“1”的学生:

select * from 报名表 where 报考科目 like '%1%'

查询所有报考课程“1”、“2”的学生:

select * from 报名表 where 报考科目 like '%1%' and 报考科目 like '%2%'

查询所有报考课程三门以上的学生:

select * from 报名表 where len(报考科目)>3

查报考过4门的学生:

select * from 报名表 where len(报考科目)=4

回答2:

select count(*) where 姓名='张三' and 科目代号='1'

回答3:

select 科目代码,count(姓名)
from 报名表
group by 科目代码

回答4:

select 科目代码,count(姓名) from 报名表 where 姓名='张三' and 科目代号='1' group by 科目代码

回答5:

楼上的兄弟报考科目号是不是一位数呢,......
这个语句不是很EASY吗?
楼主的分给不给我?
不给我也没关系,看你给谁噢
Select * From 报名表 where (Select Count(*) from group by 姓名)=N
N为你想要查的报名门数了
查一门就1
依此类推
要是你想查报名几门以上的话,就把=N改成>=N至于如何查询自己看着办吧

回答6:

我同意楼上的看法,因为你并没有指定表结构 ,所以你得到的答案也是各有道理的,但却很难去适应你的应用。
那么我谨给你提出一种建议,是目前符合3范式模型的结构,请您参考:
一、首先建表:
1.学生表,如: create table T_Student(ID int,Name varchar(20).....)
2.课程表,如: create table T_Find(ID int,Name varchar(20),FindCode char(30).....)
3.选课表,如: create table T_Choose(ID int,StudentName varchar(20),StudentID int,FindID int,.....)
这样你便很方便的在程序界面控制各种表的数据,然后你需要反馈数据时只用查找表T_Choose即可:
如您的要求,查出选课在3科以上的学生:
select B.* from (Select StudentID from T_Choose group By StudentID having count(StudentID)>=3) A
left join T_Student B on A.StudentID=B.ID