SQL Server:我需要将多行合并为具有不同列值的一行

0 sql-server

我有一个看法

Order          Drink       Entree         Desert  
--------------------------------------------------
12             Null        Preparing      Null  
12             Ready       NULL           NULL   
12             NULL        NULL           Waiting  
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

Order          Drink       Entree         Desert  
---------------------------------------------------
12             Ready       Preparing      Waiting  
Run Code Online (Sandbox Code Playgroud)

Lam*_*mak 5

您可以使用适当的聚合函数。在这种情况下,它似乎MINMAX将会起作用:

SELECT Order,
       MIN(Drink) Drink,
       MIN(Entree) Entree,
       MIN(Desert) Desert
FROM dbo.YourTable
GROUP BY Order;
Run Code Online (Sandbox Code Playgroud)