3

我有一个有 2 列的表。 Date_Réserve(日期类型),Heure_Réserve(时间类型)

我想要做的是选择由 排序的结果Date_Réserve,然后我得到的结果是由 排序的Heure_Réserve

这是我尝试过的查询:

select * from (select Date_Réserve,Heure_Réserve from réserve order by Date_Réserve)t order by Heure_Réserve

但它给了我这个错误:

ORDER BY 子句在视图、内联函数、派生表和子查询中无效,除非还指定了 TOP。

4

6 回答 6

5

您不需要ORDER BY在子查询中使用 - 它在那里毫无意义。

对于主要/次要排序,您使用单个ORDER BY

SELECT Date_Réserve,Heure_Réserve 
FROM réserve 
ORDER BY Date_Réserve, Heure_Réserve
于 2012-11-22T11:50:49.713 回答
5

列出用逗号分隔的所需列:

select Date_Réserve, Heure_Réserve from réserve
order by Date_Réserve, Heure_Réserve
于 2012-11-22T11:51:20.993 回答
3

试试这个:

SELECT Date_Réserve, Heure_Réserve FROMréserve ORDER BY Date_Réserve ASC, Heure_Réserve ASC
于 2012-11-22T11:52:29.187 回答
2

如果您想按多列排序:

select Date_Réserve,Heure_Réserve
from réserve
order by Date_Réserve, Heure_Réserve

如果不是,则子查询中的顺序是无用的。

于 2012-11-22T11:52:33.970 回答
1

一个条款,两个部分

select 
            Date_Réserve,
            Heure_Réserve 
    from 
            réserve 
    order by 
             Date_Réserve, 
             Heure_Réserve

--

如果这只是一个示例,并且您确实需要按在您可以执行的外部查询中不可用的列对结果进行排序,

select 
            Date_Réserve,
            Heure_Réserve 
    from 
        (
            select 
                    (ROWNUMBER() OVER ORDER BY Date_Réserve) do,
                    Date_Réserve,
                    Heure_Réserve 
                from
                    réserve 
        )
    order by 
             do, 
             Heure_Réserve

但是,正如您所看到的,这在您的场景中是没有意义和不合适的。

于 2012-11-22T11:52:18.510 回答
0

使用 TOP 语句时,可以在子查询中使用 order by。

select * from 
(select TOP 100 PERCENT Date_Réserve,Heure_Réserve from réserve order by Date_Réserve) t order by Heure_Réserve
于 2012-11-22T12:46:37.683 回答