首页 > 解决方案 > 在单行中选择多个值 - SQL Server

问题描述

我需要像这样合并一个带有 ID 和各种位标志的表

-----------------
a1 | x |   | x |
-----------------
a1 |   | x |   |
-----------------
a1 |   |   |   |
-----------------
b2 | x |   |   |
-----------------
b2 |   |   |   |
-----------------
c3 | x | x | x |

成这样的形式

-----------------
a1 | x | x | x |
-----------------
b2 | x |   |   |
-----------------
c3 | x | x | x |

问题是数据是按选项 ID 连接的,每个选项都有一个唯一的 ID,它与 a1、b2 连接。当我尝试使用 DISTINCT 选择它时,我从表号 1 中收到结果。我可以通过 SELECT 中的子查询来实现它,但由于性能原因,它确实是一个弱解决方案。

您知道如何选择所有这些标志并将其组合成单行吗?

标签: sqlsql-server

解决方案


使用聚合

select col1 ,max(col2),max(col3),max(col4)
form table_name group by col1

推荐阅读