我有一组行,如下所示:我需要先根据“sequenceno”对这些行进行排序。然后根据“以前的ID”。所以最终结果应该是这样的(最后两行应该交换):我做了一个广泛的搜索,但找不到真正符合这种情况的东西。非常感谢您的帮助。谢谢!
ejk8hzay1#
你可以尝试自我连接和排序
drop table if exists t; create table t(id int,seqno int, previous_id int); insert into t values (201,1,0),(204,1,201), (202,2,203),(203,2,204); select t.id,t.seqno,t.previous_id , t1.id,t1.seqno,t1.previous_id from t left join t t1 on t1.id = t.previous_id order by t1.seqno,t1.id; +------+-------+-------------+------+-------+-------------+ | id | seqno | previous_id | id | seqno | previous_id | +------+-------+-------------+------+-------+-------------+ | 201 | 1 | 0 | NULL | NULL | NULL | | 204 | 1 | 201 | 201 | 1 | 0 | | 203 | 2 | 204 | 204 | 1 | 201 | | 202 | 2 | 203 | 203 | 2 | 204 | +------+-------+-------------+------+-------+-------------+ 4 rows in set (0.00 sec)
1条答案
按热度按时间ejk8hzay1#
你可以尝试自我连接和排序