合并类似的SQL行

时间:2019-01-10 10:44:30

标签: mysql sql if-statement merge

我想在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行)。这就是为什么单独进行简单的农业种植不起作用

的原因

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