这是我的问题:
SELECT TOP 8 id, rssi1, date
FROM history
WHERE (siteName = 'CCL03412')
ORDER BY id DESC
结果如下:
如何使用SQL基于日期(Column2)反转此表?
答案 0 :(得分: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子句。
答案 1 :(得分:1)
您可以使用第一个查询来获取匹配的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
答案 2 :(得分:1)
没有运行它,但我认为它应该顺利
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
答案 3 :(得分:1)
尝试以下方法:
select * from (SELECT TOP 8 id, rssi1, date
FROM history
WHERE (siteName = 'CCL03412')
ORDER BY id DESC ) aa order by aa.date DESC
答案 4 :(得分:0)
我没有运行这个,但我认为它会起作用。如果您遇到错误,请执行并告诉我
选择id,rssi1,日期(SELECT TOP 8 id,rssi1,date 从历史 WHERE(siteName ='CCL03412') ORDER BY id DESC)按日期排序;