Неправильный синтаксис рядом с "LIMIT" с использованием mssql

Я пытаюсь получить некоторые данные из базы данных, которые должны быть в топ-10 агентов с наибольшим количеством очков.

Мой Запрос:

SELECT AgentScores.agentID, 
       AgentScores.totalScore, 
       Agents.firstname, 
       Agents.lastname 
FROM AgentScores 
INNER JOIN Agents ON AgentScores.AgentId=Agents.Agent_id 
ORDER BY AgentScores.totalScore DESC 
LIMIT 10

внутренние соединения работают. Я нашел SELECT TOP 10 оператор sql, но.. Мне нужны 10 агентов с самым высоким баллом, а не первые 10 удостоверений личности. Как вы можете видеть, я заказываю на totalscore.

кто-нибудь знает, как это исправить?

ошибка: Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near 'LIMIT'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near 'LIMIT'. ) )

спасибо!

2 ответов


вы должны использовать предложение TOP вместо LIMIT

SELECT TOP 10 AgentScores.agentID, AgentScores.totalScore, Agents.firstname, Agents.lastname FROM AgentScores INNER JOIN Agents ON AgentScores.AgentId=Agents.Agent_id ORDER BY AgentScores.totalScore DESC

чтобы ограничить строки в MSSQL, вы должны использовать SELECT TOP 10 .... вместо LIMIT 10 (limit-это предложение MySQL, а не MSSQL)