2012-06-06 34 views
0

我有一個SQLite數據庫,它存儲了具有類別的項目列表。分類爲隱含,對於它們沒有單獨的表格。我想單個查詢將返回按類別排序的所有項目,每個類別額外添加一行。查詢返回具有額外行的元素的組

考慮以下情形:

ID Name  Category 
1  Item 1  C1 
2  Item 2  C2 
3  Item 3  C1 

結果我想到會是這樣的:

ID Name  Category 
null null  C1 
1  Item 1  C1 
3  Item 3  C1 
null null  C2 
2  Item 2  C2 

這是有一個直接映射到列表視圖,其中的結果將是顯示,每個類別包含一個額外的分隔符項目。我現在正在做的是返回按類別排序的所有元素,並遍歷所有元素以知道分隔符應該放在哪裏。

我已經試驗過許多不同的JOIN s,但是我的SQL-fu很薄弱,我不知道如何編寫這樣的查詢。我會如何去做這件事?哪個SQL構造會讓我添加這些額外的行?是否有可能以我需要的方式在一個單一的中獲得結果 - 無論多麼複雜 -查詢?

回答

1

考慮一個union

select ID  
,  Name 
,  Category 
union all 
select distinct null 
,  null 
,  Category 
order by 
     Category 

order by適用於整個union--不需要的子查詢。

+0

謝謝!請注意,它必須以相反的順序完成以獲得我需要的結果。 –