查询以返回具有组的额外行的元素

时间:2012-06-06 16:14:56

标签: sql sqlite

我有一个 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,但我的 SQL-fu 很弱,我无法弄清楚如何编写这样的查询。我该怎么做呢?哪个 SQL 构造会让我添加那些额外的行?甚至可以在单个中以我需要的方式获得结果 - 无论多么复杂 - 查询?

1 个答案:

答案 0 :(得分:1)

考虑union

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

order by适用于整个联盟 - 不需要子查询。