Android SQLite查询订单问题

ren*_*iro 8 java sql database sqlite android

如何查询数据库以显示包含两个不同ID的数据的表,但是每行交替每个ID,但仍按时间顺序排列.例如.数据库有10个ID1元素和10个ID2元素.

我需要它:

ID1 #data #2minutes ago

ID2 #data #15minutes ago

ID1 #data #4minutes ago

ID2 #data #50minutes ago
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

更新:ID的数量必须能够从1到n不同,而且我目前正在尝试通过SQLite.query()方法执行此操作.

更新2:#data表示该行中的数据列,而不仅仅是一行,因此可能有5列.此外,必须通过游标返回数据.

更新3:进一步阐述,下面是我想要实现的表格和预期结果.

输入表(按时间排序)..

id | name | number | time
01   Tim    561481   2 minutes ago
02   Jon    951484   5 minutes ago
02   Jon    978284   7 minutes ago
04   Zen    171484   15 minutes ago
04   Zen    171484   17 minutes ago
03   Ken    468488   20 minutes ago
02   Jon    978284   32 minutes ago
Run Code Online (Sandbox Code Playgroud)

输出:注意,我需要在可能的情况下在数据库中替换Id,但仍然按时间排序整个事物,例如:

id | name | number | time
01   Tim    561481   2 minutes ago
02   Jon    951484   5 minutes ago
04   Zen    171484   15 minutes ago
03   Ken    468488   20 minutes ago
02   Jon    978284   7 minutes ago
04   Zen    171484   17 minutes ago
02   Jon    978284   32 minutes ago
Run Code Online (Sandbox Code Playgroud)

更新4:首选一个非常简单的解决方案,例如复杂但干净的SQL查询等. 更新5:尽管必须给予赏金,但这个问题仍然没有用一个简单的解决方案来回答我做的事情.

bwp*_*rin 0

就像是:

select a, b, c from (
    select a, b, c, rank = row_number() over (order by time) * 2 FROM ID1
    UNION ALL
    select a, b, c, rank = row_number() over (order by time) * 2 + 1 FROM ID2 ) t
order by rank
Run Code Online (Sandbox Code Playgroud)

[编辑:我的错 - 在 SQLite 中不可用]