gpt4 book ai didi

android - 将来自不同表的两个不同排序游标数据的数据排序为一个

转载 作者:搜寻专家 更新时间:2023-10-30 23:12:00 25 4
gpt4 key购买 nike

我想对来自两个游标的结果进行排序。

让我们考虑两个游标,分别是 cursor1cursor2

Cursor1 用于表 XCursor2 用于表 Y

Cursor1 使用类型为日期的列 Start 对数据进行排序,Cursor2 使用类型为 Date 的列键入日期对数据进行排序。

有些字段在两个表中都是通用的,有些则不是。

但是,这两个表之间没有绝对的关系。

问题很明显。组合数据应该是来自两个游标的排序列表。

现在发生的事情是:

我从游标 Cursor1 获取排序列表,它独立于来自游标 Cursor2 的排序列表。

如何合并生成的游标数据以便按两个日期(开始和日期)获取排序列表?

例如:

我得到这个结果:

| Date                 | Type        | Location              |
|:---------------------|------------:|:---------------------:|
| 10-Jul-2013 07:05:00 | Random | Washougal, Washington
| 10-Jul-2013 08:30:00 | Single | Vancouver, Washington
| 10-Jul-2013 07:30:00 | Multiple | Vancouver, Washington
| 10-Jul-2013 15:31:00 | Double | Vancouver, Washington

上述结果中前两行来自表 X,后两行来自表 Y。

但我想要这样的结果:

| Date                 | Type        | Location              |
|:---------------------|------------:|:---------------------:|
| 10-Jul-2013 07:05:00 | Random | Washougal, Washington
| 10-Jul-2013 07:30:00 | Multiple | Vancouver, Washington
| 10-Jul-2013 08:30:00 | Single | Vancouver, Washington
| 10-Jul-2013 15:31:00 | Double | Vancouver, Washington

查询应该是:

Cursor1 = Select alpha, beeta, gamma, Remark, id, number from X order by Start ASC


Cursor2 = Select Type, Date, gamma, Location, Obs, number from Y order by Date ASC

从 Cursor1 获得结果后,我在这样的循环中制作字符串 html:

String itemList = "";

itemList += "<tr><td align='left' width='28%' style='font-size:8px;padding-left: 15px'>"
+ cursor1.getString(1)
+ "</td><td width='16%' style='font-size:8px'>"
+ cursor1.getString(0)
+ "</td><td width='10%' style='font-size:8px'>"
+ cursor1.getString(2)
+ "</td><td width='20%' style='font-size:8px'>"
+ "</td><td width='35%'>" + cursor1.getString(3) + "</td></tr>";

然后将此 itemList 进一步添加到 Cursor2 的结果中,以完成来自两个游标的 itemList。

最终的 itemList 在布局中显示为 html

最佳答案

您可以将两个查询合并为一个查询。

首先,确保两个结果的列数相同。如果不是,您可能需要向一个查询添加一些虚拟列。

然后用UNION ALL将两者结合起来:

SELECT alpha, beeta, gamma, Remark, id,   number FROM X
UNION ALL
SELECT Type, Date, gamma, Obs, NULL, number FROM Y

然后从整个结果中选择一列作为排序依据。(结果的列名来自第一个查询。)在这种情况下,Start 列不是结果的一部分,因此我们必须添加它(并且 Date 列在第二个查询中重复,但这是必要的使其值最终出现在用于排序的结果列中):

SELECT alpha, beeta, gamma, Remark, id,   number, Start AS SortThis FROM X
UNION ALL
SELECT Type, Date, gamma, Obs, NULL, number, Date FROM Y
ORDER BY SortThis

关于android - 将来自不同表的两个不同排序游标数据的数据排序为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18613117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com