sql - 获取对其他列具有不同值的列的组合值

标签 sql sql-server database

如果多行在其他列中具有相同的值,我想要一个列的组合值。

例如在下图中,如果我排除 Type Column,直到第 4 行只有两条不同的记录。

enter image description here

因为我需要type column 我想将 2 行类型合并为一个,所以预期的输出是 enter image description here

对于以上 6 条记录结果集的输出,等效的 sql 是什么。

最佳答案

您可以使用聚合。如果您不关心值的顺序:

select a, b, c, d, e,
       (case when min(f) = max(f) then min(f)
             else min(f) + '-' + max(f)
        end) as new_f
from t
group by a, b, c, d, e;

关于sql - 获取对其他列具有不同值的列的组合值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49382789/

相关文章:

sql - 如何从命令行调用 Oracle SQL 过程?

sql - 计算组内的每个条件

sql - 为一组 SQL 语句分配一个数字分数

mysql - RDBMS 是否保证行级原子性?

MySQL - 在多个列上一起创建不为空的表

mysql - 使用 LEFT JOIN (MySQL) 时如何排除行

sql - 使用 with 子句更新语句

SQL Server 算术溢出错误将表达式转换为数据类型 int

.net - Windows Azure 平台,最新版本?

ruby-on-rails - 添加继承后检索现有的 MongoDB 集合