我想在SQL中合并一些IF条件的行基。我的数据库是这样的
|公司名称
=====================
|6067 | 6070 |无效
|6067 | 6070 | 07
|6067 | 6071 |无效
|6067 | 6071 | 07
|6067 | 6069 |无效
我想实现的是
|公司名称
=====================
|6067 | 6070 | 07
|6067 | 6071 | 07
|6067 | 6069 |无效
所以每次如果我有两个具有相同bom_id的行,我都想将它们合并为一个,但是如果我有一个,就把它留下。
这只是一个示例-我的完整查询更大,但问题就在那里。我知道SQL有一些IF,但我不知道如何在这里使用它。
//编辑
我没有提到的是,我有更多的随机值字段。我只想从不为空的行中选择此值。(但前提是我们有两排)。这就是为什么清晰而简单的农业化是行不通的

最佳答案

只做聚合:

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;

关于mysql - 合并类似的SQL行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54126942/

10-14 06:28