我想在SQL中合并某些IF条件的行基。我的数据库看起来像这样
| com_id | bom_id |fil_title ===================== | 6067 | 6070 |NULL | 6067 | 6070 |07 | 6067 | 6071 |NULL | 6067 | 6071 |07 | 6067 | 6069 |NULL
我想要实现的是
| com_id | bom_id |fil_title ===================== | 6067 | 6070 |07 | 6067 | 6071 |07 | 6067 | 6069 |NULL
因此,每当我有两行具有相同的bom_id时,我想将它们合并为一,但是如果我有一行,则将其保留。
这只是一个示例-我的完整查询更大,但是问题就在那里。我知道SQL有一些IF,但是我真的不知道如何在这里使用它。
//编辑 我没有提到的正是我有更多带有一些随机值的字段。我只想从不为空的行中选择此值。 (但前提是我们只有2行)。这就是为什么单独进行简单的农业种植不起作用
的原因答案 0 :(得分:3)
只需进行聚合:
select com_id, bom_id, max(fil_title)
from table t
group by com_id, bom_id;
如果该示例结果来自其他查询,请改用subquery
:
select com_id, bom_id, max(fil_title)
from ( <query here>
) t
group by com_id, bom_id;
答案 1 :(得分:0)
或者您可以使用distinct
select com_id , bom_id , max(fil_title)
from table t
group by com_id , bom_id