繁体   English   中英

如何反转来自已包含ORDER BY的SQL查询的表

[英]How to reverse the table that comes from SQL query which already includes ORDER BY

这是我的查询:

SELECT TOP 8 id, rssi1, date
FROM history
WHERE (siteName = 'CCL03412') 
ORDER BY id DESC

结果如下:

在此处输入图片说明

如何使用SQL根据日期(列2)反转此表?

您可以简单地使用子查询。 如果您应用TOP子句,则允许嵌套的ORDER BY

SELECT X.* FROM(
  SELECT TOP 8 id, Column1, Column2
  FROM dbo.History
  WHERE (siteName = 'CCL03412') 
  ORDER BY id DESC) X
ORDER BY Column2

演示

子查询的SELECT查询始终括在括号中。 它不能包含COMPUTE或FOR BROWSE子句,并且仅当还指定了TOP子句时才可以包括ORDER BY子句

子查询基础知识

您可以使用第一个查询来获取匹配的ID,并将其用作IN子句的一部分:

SELECT id, rssi1, date
FROM history
WHERE id IN
(
    SELECT TOP 8 id
    FROM history
    WHERE (siteName = 'CCL03412') 
    ORDER BY id DESC
)
ORDER BY date ASC

没有运行它,但我认为它应该运行良好

WITH cte AS 
(
    SELECT id, rssi1, date, RANK() OVER (ORDER BY ID DESC) AS Rank
    FROM history
    WHERE (siteName = 'CCL03412')
)
SELECT id, rssi1, date
FROM cte
WHERE Rank <= 8
ORDER BY Date DESC

请尝试以下方法:

select * from (SELECT TOP 8 id, rssi1, date
FROM history
WHERE (siteName = 'CCL03412') 
ORDER BY id DESC ) aa order by aa.date DESC

我没有运行它,但我认为它将起作用。 执行并让我知道您是否遇到错误

选择ID,rssi1,日期,从(SELECT TOP 8 id,rssi1,date from history WHERE(siteName ='CCL03412')ORDER BY ID DESC)按日期排序;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM