想将两行合并为一行

Mit*_*iya 2 sql-server

我现在得到的结果是:

EmployeeNo  Column1   Column2
================================
1           |  NULL       | Column2
1           |  Column1    |   NULL 
Run Code Online (Sandbox Code Playgroud)

我想要像

EmployeeNo  Column1   Column2
================================
1          | Column1  |   Column2
Run Code Online (Sandbox Code Playgroud)

请提供任何帮助或方法来做到这一点

提前致谢

dar*_*onw 5

合并行的最简单方法是使用聚合函数,例如 MIN/MAX。这些函数将忽略空值(请参阅MSDN)并且可以通过聚合与 ISNULL/COALESCE 类似地操作。例如:

SELECT
  EmployeeNo,
  MAX(Column1) AS Column1,
  MAX(Column2) AS Column2
FROM MyTable
GROUP BY EmployeeNo
Run Code Online (Sandbox Code Playgroud)

这将返回示例所需的结果。如果您的唯一目标是将具有空值的列合并到在这些列中包含数据的行中,那么使用 MIN 还是 MAX 都没有关系 - 结果集将是相同的。