SQL查询的排序问题
题目是这样的 有一个表 第一个字段ID 第二个字段 fudepartment(父部门ID) 第三个字段depaName(部门名称)第四个字段sunxu(用来排序) 这个表是自关联的 也就是说部门下面可能还有部门 现在我想给所有的叶子部门排序(前提是按父部门先排序) sunxu这个字段不是用来直接记录部门的顺序的 它只记录一个部门下的子部门的顺序 这个查询怎么写 麻烦大虾们给点意见 在线等着呢
参考答案:叶子部门是什么意思?我理解的不知道对不对,
楼主所说的叶子部门应该是本身没有子部门,并且有父部门的部门吧 ?如果没有父部门就无从谈起按父部门排序了。
在排序的条件使用子查询即可。
select *
from 表 a
where fudepartment is not null and not exists(select * from 表 where fudepartment=a.id)
order by (select id from 表 where id=a.fudepartment),sunxu
这个查询结果,会首先按父部门的部门id进行排序,之后再按各子部门在父部门中的顺序排序。不知道是否符合楼主的需要。
另外如果,叶子部门可以有子部门,把not exists的条件去掉即可。
select *
from 表 a
where fudepartment is not null
order by (select id from 表 where id=a.fudepartment),sunxu