|
大佬,虽然还没法全懂您的sql,但是我稍作了些改动就完成了实际的需求,发生这种问题是id较大,但是回复时间较早,这样的话用您的sql就出现了上述时间乱序的现象,我在order by的中间,加了个时间正序就搞定了:
select id,
title,
message,
pid,
to_char(datetime, 'yyyy-mm-dd hh24:mi:ss') datetime
from
(select id,
title,
message,
pid,
datetime,
connect_by_root(id) flag
from wxtable
start with pid = 0
connect by prior id = pid)
order by max(decode(pid, 0, datetime, null)) over(partition by flag) desc,datetime, row_number() over(partition by flag order by decode(pid, 0, null, datetime) nulls first) |
|