Liangwenke's' Blog

A blogging framework for hackers.

Oracle Start With … Connect by Prior用法

一个树状分类表例子:

查找某个分类的所有子类

select * from categories start with id=100 connect by prior id=parent_id

查找某个分类的所有父类

select * from categories start with id=100 connect by prior parent_id=id

PS: 查找按分组条件下的第一条记录,可用max, min函数,如查找出所有订单的第一条明细记录

select item_lines a where a.id in (select min(id) from item_lines b where a.order_id=b.order_id)