【问题标题】:Problem with returning nth row from MS Access table从 MS Access 表返回第 n 行的问题
【发布时间】:2019-12-12 12:07:56
【问题描述】:

我正在尝试在 MS Access (Office 365) 中选择表格的第 n 行。我见过以下两种解决方案:

https://stackoverflow.com/a/45031166/1907765

https://stackoverflow.com/a/44891583/1907765

他们都没有为我工作。当我根据这些答案编写查询时,查询返回表中的最后 n 行,然后选择其中的第一个结果。例如。如果我想选择第三行,它将选择倒数第三行。这是我的查询:

SELECT TOP 1 Sense.SenseID
FROM
(
SELECT TOP 3 Sense.SenseID
FROM Sense
ORDER BY Sense.SenseID DESC
)
ORDER BY Sense.SenseID ASC

知道我做错了什么,以及如何生成正确的结果吗?

【问题讨论】:

    标签: sql ms-access ms-access-2016


    【解决方案1】:

    顺序应该颠倒:

    SELECT TOP 1 
        s.SenseID
    FROM
     (SELECT TOP 3 s.SenseID
      FROM Sense AS
      ORDER BY s.SenseID Asc) AS s
    ORDER BY 
        s.SenseID Desc;
    

    【讨论】:

      【解决方案2】:

      您需要一个表别名,以便语法正确。试试这个:

      SELECT TOP 1 s.SenseID
      FROM (SELECT TOP 3 s.SenseID
            FROM Sense as s
            ORDER BY s.SenseID DESC
           ) as s
      ORDER BY s.SenseID ASC;
      

      这假设Sense.SenseID 是唯一的——但这似乎是一个合理的假设。

      【讨论】:

      • 感谢您的回答 - 我已经尝试过了,它仍然返回倒数第三个结果,而不是第三个。是否还需要其他任何东西来完成这项工作?
      • @Lou 。 . .只需在查询中交换 DESCASC。目前尚不清楚 you 的“第三”是什么意思,第三高和第三低的值都是有效的解释。这个版本是第三高的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多