2014-05-09 44 views
2

的形式獲取數據我有一些數據的表如下Oracle查詢在一棵樹上

 
Id | Title | Category 
-- -----  -------- 
    1 Beans Food 
    2 Pizza Food 
    3 SQL  Book 
    4 Avatar Movie 
    5 Oracle Book 

我想組織這樣的表格數據的樹 與根節點形式作爲類別。

 
Food 
    Beans 
    Pizza 
Book 
    SQL 
    Oracle 
Movie 
    Avatar 

您能否建議分層查詢? 我嘗試了很少,但無法得到想要的結果。

UPDATErealspirituals

設置一個小提琴here,如果你想嘗試

+0

你可以設置一個小提琴併發布你試過的東西嗎? – SriniV

回答

3

這可能是一個解決方案

with tab as (select distinct category title, null parent from test 
      union all 
     select title, category from test) 
select lpad(' ', (level * 2 - 1), '-') || title as title 
    from tab 
    start with parent is null 
connect by prior title = parent; 

SqlFiddle

2

嘗試此查詢:

SELECT CASE 
    WHEN title IS NULL THEN category 
    ELSE '- ' || title 
END category_title 
FROM (
    SELECT title, category FROM table 
    union all 
    SELECT DISTINCT NULL title, category from table 
) t 
ORDER BY category, title NULLS FIRST