如何在不创建分段 table 的情况下将行转置为 SQL 服务器中的列

How to transpose rows to columns in SQL SERVER without creating staging table

请帮我转置下面的内容 table,而不创建暂存 table。尝试过 PIVOT 但失败了。任何建议也会有所帮助。谢谢!

现有table:

时间 价值
2020/4/85:18 1
2020/4/85:22 0
2020/4/87:22 1
2020/4/87:31 0
2020/4/91:44 1
2020/4/91:50 0

想要的结果:

1 0
2020/4/85:18 2020/4/85:22
2020/4/87:22 2020/4/87:31
2020/4/91:44 2020/4/91:50

您可以枚举它们并汇总:

select max(case when value = 1 then time end) as value_1,
       max(case when value = 0 then time end) as value_0
from (select t.*,
             row_number() over (partition by value order by time) as seqnum
      from t
     ) t
group by seqnum;

结合 ROW_NUMBER window 函数和 PIVOT:

试试这个解决方案
SELECT [0], [1]
FROM 
(
  SELECT Value, TIME, ROW_NUMBER() OVER (PARTITION BY Value ORDER BY TIME) Rb
  FROM MyTable
) AS SourceTable
PIVOT
(
  MAX(TIME)
  FOR Value IN ([0], [1])
) AS PivotTable