I';我试图找到SQL查询的前5个结果,但出现了一个错误

I';我试图找到SQL查询的前5个结果,但出现了一个错误,sql,Sql,错误: ORDER BY子句在视图、内联函数和派生函数中无效 表、子查询和常用表表达式(除非为TOP)、偏移量 也为XML指定了or 不需要子查询 SELECT Top 5* FROM ( select SUM(CASE WHEN Medal = 'Gold' THEN 1 ELSE 0 END) AS 'Gold_Medals', Country_Code from olympic_medals GROUP BY Country_Code ORDER BY Gold_Meda

错误:

ORDER BY子句在视图、内联函数和派生函数中无效 表、子查询和常用表表达式(除非为TOP)、偏移量 也为XML指定了or

不需要子查询

SELECT Top 5* 
FROM (
select
    SUM(CASE WHEN Medal = 'Gold' THEN 1 ELSE 0 END) AS 'Gold_Medals',
    Country_Code
from olympic_medals
GROUP BY Country_Code
ORDER BY Gold_Medals DESC)

跳过子查询,它将起作用。此外,子查询内部的顺序不能保证保留在子查询外部。请使用正在使用的数据库标记您的问题。
select top 5 SUM(CASE WHEN Medal = 'Gold' THEN 1 ELSE 0 END) AS 'Gold_Medals',
       Country_Code
from olympic_medals
GROUP BY Country_Code
ORDER BY Gold_Medals DESC