我有一个 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 构造会让我添加那些额外的行?甚至可以在单个中以我需要的方式获得结果 - 无论多么复杂 - 查询?
答案 0 :(得分:1)
考虑union
:
select ID
, Name
, Category
union all
select distinct null
, null
, Category
order by
Category
order by
适用于整个联盟 - 不需要子查询。