中软的面试题,大家帮我写2条SQl语句,当场没有做出来,真是哭死了。
1.有一张Student表和一张成绩表。
学生表 成绩表要求查出选课数目大于或等于5学生的学号和姓名,并按平均成绩的降序排列。我自己努力了半天也没有做出来,大家帮帮做做。
2.表还是上面的成绩表,要求查出某个个学生所选的课程的课程号,比方说95006号学生,要求的输出结果是
1,2,3,4,5,6,7
用逗号隔开,而且是横向的,不是一列的,不是下面这样的
cno
1
2
3
4
5
6
7
1.有一张Student表和一张成绩表。
学生表 成绩表要求查出选课数目大于或等于5学生的学号和姓名,并按平均成绩的降序排列。我自己努力了半天也没有做出来,大家帮帮做做。
2.表还是上面的成绩表,要求查出某个个学生所选的课程的课程号,比方说95006号学生,要求的输出结果是
1,2,3,4,5,6,7
用逗号隔开,而且是横向的,不是一列的,不是下面这样的
cno
1
2
3
4
5
6
7
中软的面试题,大家帮我写2条SQl语句,当场没有做出来,真是哭死了。
1.有一张Student表和一张成绩表。
学生表
sno sname
95001 张三
95002 李四
95003 王五
95004 赵六
95005 郑七
95006 刘八
成绩表
cno cno score
95001 1 89
95001 2 78
95002 1 68
95003 4 85
95004 5 78
95005 1 78
95005 2 45
95005 3 78
95005 4 68
95005 5 65
95006 1 79
95006 2 78
95006 3 96
95006 4 57
95006 5 85
95006 6 84
95006 7 67
要求查出选课数目大于或等于5学生的学号和姓名,并按平均成绩的降序排列。我自己努力了半天也没有做出来,大家帮帮做做。
2.表还是上面的成绩表,要求查出某个个学生所选的课程的课程号,比方说95006号学生,要求的输出结果是
1,2,3,4,5,6,7
用逗号隔开,而且是横向的,不是一列的,不是下面这样的
cno
1
2
3
4
5
6
7
(select scno,avg(grade) grade2 from 成绩表 group by scno having count(cno)>=5) a
where sno=scno order by grade2 desc
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @RetVal varchar(8000)
SET @RetVal = ''
SELECT @RetVal = cno + ',' + @RetVal FROM 成绩 WHERE scno = @Col1Val
IF LEN(@RetVal) > 0
SET @RetVal = LEFT(@RetVal, LEN(@RetVal) - 1)
RETURN @RetVal
ENDSELECT top 1 dbo.ConvertVtoH(scno) cno FROM 成绩 where scno='1002'