如何在不创建临时表的情况下在SQL SERVER中将行转换为列



请帮助我转换下表,而不创建临时表。尝试PIVOT,但失败。任何建议都会有所帮助。谢谢

现有表格:

时间2020年4月8日5:182020年4月8日5:222020年8月4日7:222020年8月4日7:312020年4月9日1:442020年4月9日1: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窗口函数和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

相关内容

  • 没有找到相关文章

最新更新