使用mssql

时间:2015-07-29 15:11:38

标签: php sql-server

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

谢谢!

2 个答案:

答案 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)