SQL获取10个最大的数字

时间:2011-05-05 13:24:50

标签: sql sql-server tsql

我正试图从名为奖金的表中检索10个最大的数字。

但我收到此错误消息:

Incorrect syntax near 'LIMIT'

我的代码:

SELECT cust_nr, period1_bonus FROM bonus ORDER BY period1_bonus DESC LIMIT 10

5 个答案:

答案 0 :(得分:8)

请改为尝试:

SELECT TOP 10 cust_nr, period1_bonus FROM bonus ORDER BY period1_bonus DESC

LIMIT <x>是mySQL构造,而不是MSSQL构造。 TOP应该在这里为你效劳。

答案 1 :(得分:6)

尝试 SELECT TOP

SELECT TOP 10 cust_nr, period1_bonus 
FROM bonus 
ORDER BY period1_bonus DESC

答案 2 :(得分:4)

我不确定,但会

SELECT TOP 10 cust_nr, period1_bonus FROM bonus ORDER BY period1_bonus DESC

工作?

编辑:lol,我认为我是对的(现在突然看到其他答案)+1为@Martin要求rdbms:)

答案 3 :(得分:3)

您似乎正在使用SQL Server

TSQL中,语法为:

SELECT  TOP 10 cust_nr, period1_bonus
FROM    bonus
ORDER BY
        period1_bonus DESC

答案 4 :(得分:1)

由于此问题也标有w / c#,我假设您也有兴趣在c#中执行此操作。这是SQL代码的linq-to-sql等价物。

public IEnumerable<Bonus> GetHighestValues()
{
    var query = (from b in _context.bonus
                 take 10                     
                 orderby b.period1_bonus descending
                 select b);
    return query;
}

编辑 - 我看到c#标签现已从问题中移除。不过,我的回答可能对你(或其他人)有帮助。