首页 新闻 赞助 找找看

MSSQL 视图Order by问题

0
悬赏园豆:40 [待解决问题]

在定义视图的时候里面使用 TOP 100 PERCENT + ORDER BY 想对导出的视图进行排序,虽然最后创建出来了视图,但是视图导出的数据并没有排序,想问下这里面的原因。

Joe'qs的主页 Joe'qs | 初学一级 | 园豆:118
提问于:2020-04-28 10:32
< >
分享
所有回答(2)
0

拿出你的原始语句啊

顾晓北 | 园豆:10844 (专家六级) | 2020-04-28 11:10

Create View View_Student1(学号,选修门数,全部平均成绩)
AS
(
Select Top 100 PERCENT
StudentGrade.Stu_id,
Count(*),
AVG(StudentGrade.Grade)
From
StudentGrade
Group by StudentGrade.Stu_id
Order by AVG(StudentGrade.Grade) Desc
)

支持(0) 反对(0) Joe'qs | 园豆:118 (初学一级) | 2020-04-28 11:15
1

Select Top 100 PERCENT
StudentGrade.Stu_id,
Count(*),
AVG(StudentGrade.Grade)
From
StudentGrade
Group by StudentGrade.Stu_id
Order by AVG(StudentGrade.Grade) Desc

这个查询语句是不是 排序的

wangleping | 园豆:192 (初学一级) | 2020-04-28 13:50

对,单独运行是可以排序,结合创建视图,导出的视图并不能排序。

支持(0) 反对(0) Joe'qs | 园豆:118 (初学一级) | 2020-04-28 14:02

@Joe'qs: 在视图上操作排序试试

支持(0) 反对(0) wangleping | 园豆:192 (初学一级) | 2020-04-28 14:41

利用创建了的视图进行排序是可以的。
现在问题是在 “创建“ 视图的 时候进行排序,但最后导出来的视图数据是没有进行排序,那么就是说创建视图时不能用Order by,就是这里卡住我了,不懂原因是为什么

支持(0) 反对(0) Joe'qs | 园豆:118 (初学一级) | 2020-04-28 14:48

@Joe'qs: 我刚百度了一下 :创建排序视图的企图本身就是错误的,因为视图表示一个表,而表是不会对行排序的。 链接: https://blog.csdn.net/ddzr972435946/article/details/102814602 希望你有所收获了。

支持(0) 反对(0) wangleping | 园豆:192 (初学一级) | 2020-04-28 15:14

谢了,CSDN我昨晚都找过了,但是里面的答案参差不齐,都说不出个所以然,非常笼统。实在没办法才来这里找大佬帮帮忙的

支持(0) 反对(0) Joe'qs | 园豆:118 (初学一级) | 2020-04-28 15:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册