我有一个android sqllite数据库。它有一个名为chainid的文本列。
我想使用DISTINCT chainids ||返回行中的所有列或者chainid等于:“none”。
所以例如:
| ID |名称| chainid |
| 1 | widgetname1 | 12345 |
| 2 | widgetname2 | 12345 |
| 3 | widgetname3 | “无”|
| 4 | widgetname4 | 49390 |
| 5 | widgetname5 | 49390 |
鉴于上面的表格,我希望我的查询返回3行,其中包含第2行,第3行和第5行的所有列。 - 所以关于chainid的DISTINCT,其中chainid =“none”,其中max id被选为不同的行
我可以在一个查询中实现此目的吗?
我可以返回所有内容,然后在java中进行处理,但效率很低。
答案 0 :(得分: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'
)