组记录并显示列的非空值

时间:2018-04-03 07:03:55

标签: sql

我有下表:

SingleConsumers.subscribeAutoDispose(
    Single.just(db)
            .subscribeOn(Schedulers.io()),
    composite,
    db -> db.playerDao().getAll())

我需要输出如下:

id | name | phone  | address
 1 | bob  | 123457 | NULL
 2 | bob  | NULL   | some address

如何在SQL中完成此操作?

1 个答案:

答案 0 :(得分:1)

通过观察,以下查询应该有效:

SELECT
    MIN(id) AS id,
    name,
    MAX(phone) AS phone,
    MAX(address) AS address
FROM yourTable
GROUP BY name;

这有几个假设:

  • NULLphone列中只有一个非address
  • 您希望为每个记录名称组选择最小id

如果没有进一步的信息,这些似乎是合理的假设。