【问题标题】:SQL Select Bottom RecordsSQL 选择底部记录
【发布时间】:2010-09-08 19:41:21
【问题描述】:

我有一个查询,我希望检索最旧的 X 记录。目前我的查询是这样的:

SELECT Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate DESC

我知道通常我会删除“DESC”关键字来切换记录的顺序,但是在这种情况下,我仍然希望首先获得以最新项目排序的记录。

所以我想知道是否有任何方法可以执行此查询,以便对最旧的 X 项进行排序,使最新的项排在第一位。我还应该补充一点,我的数据库存在于 SQL Server 2005 上。

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:

    为什么不只使用子查询?

    SELECT T1.* 
    FROM
    (SELECT TOP X Id, Title, Comments, CreatedDate
    FROM MyTable
    WHERE CreatedDate > @OlderThanDate
    ORDER BY CreatedDate) T1
    ORDER BY CreatedDate DESC
    

    【讨论】:

      【解决方案2】:

      嵌入查询。当按升序排序(即最旧的)时,您取前 x,然后按降序重新排序 ...

      select * 
      from 
      (
          SELECT top X Id, Title, Comments, CreatedDate
          FROM MyTable
          WHERE CreatedDate > @OlderThanDate
          ORDER BY CreatedDate 
      ) a
      order by createddate desc 
      

      【讨论】:

        猜你喜欢
        • 2010-10-18
        • 2018-01-19
        • 2012-11-03
        • 2018-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-24
        • 2015-12-27
        相关资源
        最近更新 更多