使用mssql在'LIMIT'附近的语法不正确

Peu*_*urr 9 php sql-server

我正在尝试从数据库中检索一些数据,这些数据需要是得分最高的代理商的前十名.

我的查询:

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
Run Code Online (Sandbox Code Playgroud)

内连接正在工作.我找到了SELECT TOP 10sql语句,但是......我想要10个代理人得分最高而不是前10个id.正如你所看到的,我正在订购总计.

任何人都有一个线索如何解决这个问题?

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

谢谢!

Gia*_*mbo 12

你必须使用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
Run Code Online (Sandbox Code Playgroud)

  • 但为什么会这样呢? (8认同)

drm*_*ous 9

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