使用 mssql 的“LIMIT”附近的语法不正确

2022-08-30 20:28:01

我正在尝试从数据库中检索一些数据,这些数据需要是得分最高的代理的前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

内部联接正在工作。我找到了sql语句,但是..我想要得分最高的10个代理,而不是前10个id。如您所见,我正在订购总分。SELECT TOP 10

有人知道如何解决这个问题吗?

错误: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'. ) )

谢谢!


答案 1

您必须使用 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

答案 2

为了限制MSSQL中的行,您必须使用....而不是(限制是MySQL子句,而不是MSSQL)SELECT TOP 10LIMIT 10


推荐