Sqlite查询不同或某些值

时间:2013-03-23 11:20:02

标签: sqlite distinct

我有一个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中进行处理,但效率很低。

1 个答案:

答案 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'
)