Sql 用于为组返回具有额外行的元素的查询
我有一个SQLite数据库,它存储了带有类别的项目列表。类别是隐式的,它们没有单独的表。我想要一个查询,它将返回按类别排序的所有项目,每个类别有一个额外的行 考虑以下场景:Sql 用于为组返回具有额外行的元素的查询,sql,sqlite,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
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,但是我的sqlfu很弱,我不知道如何编写这样的查询。我该怎么做呢?哪些SQL构造允许我添加这些额外的行?甚至可以在单个查询中以我需要的方式获得结果吗?无论查询有多复杂?考虑一个联合体
:
select ID
, Name
, Category
union all
select distinct null
, null
, Category
order by
Category
orderby
适用于整个联合体——无需子查询。谢谢!注意,为了得到我需要的结果,必须以相反的顺序进行。