求一个SQL中排序的order by 条件

来源:百度知道 编辑:UC知道 时间:2024/06/05 01:31:21
原表 表:123
ID NAME PID SEQ
01 李 null 200
03 张 null 100
08 李三 01 20
09 张三 03 20
10 李四 01 30
11 张四 03 30

想要得到下面的表SQL语句的order by是什么

ID NAME PID SEQ level
03 张 null 100 1
09 张三 03 20 2
11 张四 03 302 2
01 李 null 200 1
08 李三 01 20 2
10 李四 01 30 2

先以level1的seq的顺序排,然后每个level1的子内容在按seq排序

select * from 123
order by XXX
那个张 李什么都是我自己瞎编的,好多别的呢,不能通过拼音开头字母排。

select * from 123
order by level,seq
这个好像不行,他是先按level排,如果level相同按seq排
不像不是特别符合

都说了 不能按名字排

改下题目吧

ID NAME PID SEQ
01 李 null 200
03 张 null 100
08 李三 01 20
09 张三 03 20
10 李四 01 30
11 张四 03 30
12

一个sql解决不了问题

先按一个排,再按同pid不同id排,要用到遍历,你这个是前序遍历。

你看一下相关知识吧。

select * from 123
order by level,seq
楼主的问题用排序无法解决。本来就不是排序。

先以level1的seq的顺序排,然后每个level1的子内容在按seq排序

按照你给的题目,和结果 就应该是 select * from 123 order by level,seq

select * from 123 order by NAME desc

这个问题只用简单的sql语句是无法解决的,但是可以先按照一个排序,然后用循环检索再排序。