SQL“独特的条件行”

时间:2013-09-26 07:28:24

标签: sql database informix

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

|    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数据库。

2 个答案:

答案 0 :(得分:1)

select name, max(id) as id
from your_table
group by name

答案 1 :(得分:0)

使用Min会产生所需的结果(仅在当前情况下),因此您可以将MinMax同时用于案例,这样您就可以涵盖这两种情况...... < / p>

select Name, Min(ID) as ID
from your_table
group By Name