我正在尝试从数据库中检索一些数据,这些数据需要是得分最高的代理商中的前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个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'. ) )
谢谢!
答案 0 :(得分:10)
您必须使用TOP子句而不是LIMIT
[[[self fetchedResultsController] managedObjectContext] performBlock:^{
NSError *error = nil;
[self.fetchedResultsController performFetch:&error];
if (error) {
NSLog(@"Unable to perform fetch.");
NSLog(@"%@, %@", error, error.localizedDescription);
}
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[_tableView reloadData];
}];
}];
答案 1 :(得分:8)
为了限制MSSQL中的行,你必须使用SELECT TOP 10
....而不是LIMIT 10
(limit是一个MySQL子句,而不是MSSQL)