繁体   English   中英

合并类似的SQL行

[英]Merging similar SQL rows

我想在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行)。 这就是为什么明显和简单的agrregate不起作用的原因

只做聚合

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;

或者您可以使用distinct来这样做

select com_id , bom_id , max(fil_title)
from table t
group by com_id , bom_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM