0

我目前正在努力解决以下问题:

|    NAME    |     ID     |
|____________|____________|
     AAA          *NULL*
     AAA           31
     AAA           81 
     BAL          *NULL*
     BDX          *NULL*
     CAL          *NULL*
     CAL           11

我想在以下情况下选择每个名称一次: - 如果有一个具有指定 ID 的名称 -> 选择此行 - 如果没有指定 id (NULL) -> 选择此行

所以预期的结果应该是:

|    NAME    |     ID     |
|____________|____________|
     AAA           31
     BAL          *NULL*
     BDX          *NULL*
     CAL           11

任何帮助将不胜感激。顺便说一句:我正在使用 Informix DB。

4

2 回答 2

1
select name, max(id) as id
from your_table
group by name
于 2013-09-26T07:29:22.027 回答
0

使用Min将产生所需的结果(仅在当前场景中),因此您可以同时使用MinMax使用案例,这样您就可以涵盖两种场景......

select Name, Min(ID) as ID
from your_table
group By Name
于 2013-09-26T08:26:10.310 回答