【问题标题】:SQL Select the first x rows [duplicate]SQL选择前x行[重复]
【发布时间】:2011-12-06 05:57:15
【问题描述】:

可能重复:
SQL Query to Select First/Top N records

到目前为止,这是我的代码:

SELECT WeekNumber, SUM(Hours)
FROM Information
WHERE YEAR = 2011
GROUP BY WeekNumber
ORDER BY WeekNumber DESC

但是;我正在尝试选择上周或上个月的信息。有没有办法只选择第一行或前 x 行,其中这些行包含该月的小时数?

【问题讨论】:

标签: sql sql-server-2008


【解决方案1】:

假设您使用的是 SQL Server,请使用 TOP 子句(limit 仅适用于 MySQL);例如:

SELECT TOP 10 WeekNumber, SUM(Hours)
FROM Information 
WHERE YEAR = 2011
GROUP BY WeekNumber
ORDER BY WeekNumber DESC

【讨论】:

  • 有没有办法让 TOP 子句动态化,它会根据星期几变化?
  • @brachaalizah 这没有意义,每一行的星期数可能不同,顶部的 x 子句适用于整个查询
【解决方案2】:

使用 Microsoft SQL Server 2008(在您的标签中指定),您需要使用 TOP 关键字。

SELECT TOP 10 WeekNumber, SUM(Hours)
FROM Information
WHERE YEAR = 2011
GROUP BY WeekNumber
ORDER BY WeekNumber DESC

LIMIT 关键字用于 MySQL,而不用于 SQL Server

您也可以在查询的最开始使用SET ROWCOUNT 10,它的作用相同,但将持续到连接中的所有后续查询。

【讨论】:

    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2014-05-22
    相关资源
    最近更新 更多