SQL 'SELECT'附近语法错误

qq_46330184 2020-05-20 10:48:40
#1 CREATE VIEW V_AVG
#2 AS
#3 SELECT SelectCourse_StudentNo,AVG=AVG(SelectCourse_Score)
#4 FROM SelectCourse
#5 GROUP BY (SelectCourse_StudentNo)
#6 SELECT *
#7 FROM V_AVG
#8 WHERE AVG>80

#6 出现的SELECT 附近有语法错误。
...全文
786 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_46330184 2020-05-26
  • 打赏
  • 举报
回复
好滴 谢谢你啦
吉普赛的歌 版主 2020-05-22
  • 打赏
  • 举报
回复
引用 4 楼 qq_46330184 的回复:
嗯嗯 是的 ,但是不理解WITH V_AVG AS (。。。)这个格式
正规说法叫 公共表表达式 common table express (CTE). 最大的用处是递归查询。 你这里,类似于: select * from ( select * from xxx ) as V_AVG 这种写法的代替。
qq_46330184 2020-05-22
  • 打赏
  • 举报
回复
嗯嗯 是的 ,但是不理解WITH V_AVG
AS (。。。)这个格式
StrongAnt2020 2020-05-21
  • 打赏
  • 举报
回复
我感觉直接用个having子句就行了,视图都不需要。
SELECT SelectCourse_StudentNo,AVG=AVG(SelectCourse_Score)
FROM SelectCourse
GROUP BY (SelectCourse_StudentNo)
HAVING AVG>80
卖水果的net 版主 2020-05-21
  • 打赏
  • 举报
回复
#1 CREATE VIEW V_AVG #2 AS #3 SELECT SelectCourse_StudentNo,AVG=AVG(SelectCourse_Score) #4 FROM SelectCourse #5 GROUP BY (SelectCourse_StudentNo) GO -- 这行加一行 GO #6 SELECT * #7 FROM V_AVG #8 WHERE AVG>80
yiminglian 2020-05-21
  • 打赏
  • 举报
回复
视图中只能包含一个查询语句,你这明显是两个结果。 感觉你是不是要这么查?
CREATE VIEW V_AVG
AS
    WITH    V_AVG
              AS ( SELECT   SelectCourse_StudentNo ,
                            AVG = AVG(SelectCourse_Score)
                   FROM     SelectCourse
                   GROUP BY ( SelectCourse_StudentNo )
                 )
    SELECT  *
    FROM    V_AVG
    WHERE   AVG > 80;

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧