SQL Server排序查询时如何仅返回Top 1结果及语法错误解决
错误原因
你编写的SQL语句多写了一个冗余的SELECT关键字,TOP(1)是SQL Server中用于限定返回结果行数的语法,直接跟在查询的第一个SELECT关键字后即可,不需要额外新增一层查询。
正确写法
SELECT TOP(1) AVG(PROD_PRICE) AS Expr1 FROM LGPRODUCT GROUP BY BRAND_ID ORDER BY Expr1
如果你需要返回平均价格最高的第一条结果,在ORDER BY Expr1后补充DESC即可。
可选兼容写法(SQL Server 2012及以上版本支持)
如果你需要更通用的取前N条语法,也可以使用OFFSET FETCH语法实现相同效果:
SELECT AVG(PROD_PRICE) AS Expr1 FROM LGPRODUCT GROUP BY BRAND_ID ORDER BY Expr1 OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY
内容的提问来源于stack exchange,提问作者jx1412ep
相关产品推荐
相关产品推荐

