0

我有一个 android sqllite 数据库。它有一个名为chainid 的文本列。

我想从具有 DISTINCT 链 ID 的行中返回所有列 || 或其中chainid 等于:“无”。

所以例如:

| 身份证| 姓名 | 链ID |
| 1 | 小部件名称1 | 12345 |
| 2 | 小部件名称2 | 12345 |
| 3 | 小部件名称3 | “无” |
| 4 | 小部件名称4 | 49390 |
| 5 | 小部件名称5 | 49390 |

鉴于上表,我希望我的查询返回 3 行,其中包含第 2 行、第 3 行和第 5 行的所有列。-- 所以 DISTINCT on chainid OR where chainid = "none" 最大 id 被选为不同的行

我可以在一个查询中实现这一点吗?

我可以全部返回,然后在 java 中处理,但这效率低下。

4

1 回答 1

0

关于什么

select *
from table where id in
( select max(id)
  from table
  group by chainid
  where chainid != 'none'
  union
  select id
  from table
  where chainid = 'none'
)
于 2013-03-23T11:39:48.053 回答