Nếu tôi hiểu bạn một cách chính xác, bạn muốn sắp xếp thứ tự các gia đình trước tiên theo tên của người nắm giữ, sau đó là tên của những người phụ thuộc. Phần sau làm được điều đó.
with family_order as (
select idfamily, rownum r from (
select idfamily from costumer where relation = 'H' order by name
)
)
select c.* from costumer c
inner join family_order fo on c.idfamily = fo.idfamily
order by fo.r, relation desc, name