我有一个查询
SELECT employeedept, execoffice_status, employee, COUNT(*) AS 'employeetotal', YEAR_cse1 =YEAR(execoffice_date)
FROM CSEReduxResponses
WHERE execoffice_status = 1
GROUP BY employeedept, execoffice_status, YEAR(execoffice_date), employee
order by [YEAR_cse1],
LIMIT 20
当我添加LIMIT时,它会给我一个错误"语法不正确' 20'。"。 还有另一种方法可以获得前20名吗?
我有 Microsoft SQL Server Management Studio 10.0.2531.0,SQL Server 2008。答案 0 :(得分:1)
您可能正在寻找top
SELECT TOP 20 employeedept, execoffice_status, employee,
COUNT(*) AS 'employeetotal',YEAR_cse1 =YEAR(execoffice_date)
FROM CSEReduxResponses
WHERE execoffice_status = 1
GROUP BY employeedept, execoffice_status, YEAR(execoffice_date), employee
order by [YEAR_cse1]
答案 1 :(得分:0)
如果您read the documentation for select
,您会看到它使用关键字top
,whose documentation表示它
将查询结果集中返回的行限制为指定的行数或 SQL Server 2012中的行百分比。当TOP与ORDER BY一起使用时 子句,结果集仅限于前N个有序行数;否则,它 以未定义的顺序返回前N行。使用此子句指定 从SELECT语句返回或受INSERT,UPDATE,MERGE影响的行数, 或DELETE语句。
所以你可以通过说出像
这样的东西来得到你想要的东西select top 20
*
from foo