我有一张如下表:
这是我们希望最终结果如下所示的一个例子:
我在这些链接中尝试过解决方案
Merge or Combine Multiple Rows Records to Single Column Record with Comma delimiters
Rolling up multiple rows into a single row and column for SQL Server data
但是所有主题只在一列中组合行并使用分隔符分隔值,但是我想获取Input列中第一行的值和Output列中的第二行,如上所示。
答案 0 :(得分:1)
请尝试以下查询:
我使用PIVOT
和ROW_NUMBER OVER
分别从行生成输入/输出值。请注意,用于确定输入/输出的任何业务逻辑都位于内部查询创建表s
select id,name, [1] as input, [2] as [Output] from
(select id,name,destination,row_number() over (partition by id order by id) as colnum from tbl) s
pivot
(
max(destination) for colnum in ([1],[2])
)p
示例sql小提琴链接:http://sqlfiddle.com/#!6/ed9f2/2