Oracle SQL中按多列排序
您好,我想多栏订购Oracle SQL中按多列排序,oracle,Oracle,您好,我想多栏订购 排序下降计划支腿 按天数排序 排序下降时间 我知道可以使用以下SQL代码。但是,由于某些原因,在我使用的特定ETL在线工具中,这不起作用 SELECT plane_check AS plane_leg, min(trunc(ead_date)- trunc(pickup_date_ts)) AS no_of_days, to_char(max(pickup_date_ts),'HH24:MI') as time from
SELECT
plane_check AS plane_leg,
min(trunc(ead_date)- trunc(pickup_date_ts)) AS no_of_days,
to_char(max(pickup_date_ts),'HH24:MI') as time
from
final_leg
group by
plane_check, trunc(pickup_date_ts)
order by
plane_leg DESC, no_of_days ASC, time DESC
因此,我希望有人建议使用串联或其他方法对这些数据进行排序
当我使用Mysql Server 5.0时,您编写的用于工作的上述查询,与更高版本类似的一些原因。它不再工作 您可以按数据分组,然后使用以下查询进行排序。让我知道这是否有效
Select * from (SELECT
plane_check AS plane_leg,
min(trunc(ead_date)- trunc(pickup_date_ts)) AS no_of_days,
to_char(max(pickup_date_ts),'HH24:MI') as time
from
final_leg
group by
plane_check, trunc(pickup_date_ts)) t1
order by
plane_leg DESC, no_of_days ASC, time DESC
试试这个:
SELECT
PLANE_LEG,
NO_OF_DAYS,
TIME
FROM
(
SELECT
PLANE_LEG,
NO_OF_DAYS,
TIME,
TO_NUMBER((PLANE_LEG * 1000)
||((MAX(NO_OF_DAYS) OVER() - NO_OF_DAYS) * 100)
||(TO_CHAR(TIME, 'HH24') * 10)) AS ORDER_CLAUSE
FROM
DATAA
)
ORDER BY
ORDER_CLAUSE DESC
干杯
Time
列是时间数据类型还是VARCHAR?@riggsfully它是一个datetime然后该查询没有生成该输出???@riggsfully它是一个datetime,但是我使用下面的方法将它转换为时间字符(max(Time),'HH24:MI'),以便向我们显示您正在运行的实际查询。伪代码将得到伪答案我也尝试过,排序仍然不起作用。这就是为什么我在考虑使用concatation对数据进行排序我在使用Oracle,我更新了问题中的标记