900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 选择列表中的列'sc.cno'无效 因为该列没有包含在聚合函数或者group by 字句中《S

选择列表中的列'sc.cno'无效 因为该列没有包含在聚合函数或者group by 字句中《S

时间:2018-07-14 20:53:52

相关推荐

选择列表中的列'sc.cno'无效 因为该列没有包含在聚合函数或者group by 字句中《S

1.SQL Server中,子查询不能返回多个值
2.子查询中不能包含ORDER BY子句
3.group by 可以将查询结果按某一列或多列的值进行分组。group by 一般是和聚合函数一起搭配使用的,不然用了也没什么意义,除了消除重复功能外,但消除重复一般使用distinct。

当我执行以下语句:select sno,cno from sc group by sno 报错如下

因为,我的select字段中有cno课程号,但却不是在聚合函数或者group by子句

中,所以报错。

正确写法:

//这一句是查看,每个人修读了几门课

select sno,count(cno) from sc group by sno

//这里先按学号分组再按课程号分组,只按学号分组不会出现重复的学号的

select sno,cno from sc group by SNo,CNo

2) 如果是筛选结果 可以先使用where指定条件 再用group by 或者先用group

by 再用having来指定条件,(聚合函数不能出现在where子句中,只可以和select或having搭配,SQL Server会报错)

//查询选修两个门课及以上的学生

//报错

select SNo from sc group by SNo where count()>1

//正解

select SNo from sc group by SNo having count()>1

//查看每个学生选了几门课,且选的课的成绩不为空

//报错,group by要在where后面

select sno,count(cno) from sc group by SNo where score is not null

//正解

select sno,count(cno) from sc where score is not null group by SNo

通过这次实验,我对查询语句有了更深入的理解,以前自己没注意到的语法细节也在实验中体现了出来,感谢老师在实验过程中也对我给到很多的建议和帮助,不管怎么说,最终还是得勤加练习并不断总结才能对sql语句运用的更加熟练。

选择列表中的列o无效 因为该列没有包含在聚合函数或者group by 字句中《SQL中的group by该怎么用?》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。