【问题标题】:How to convert datetime values from rows to columns如何将日期时间值从行转换为列
【发布时间】:2020-03-20 18:34:36
【问题描述】:
Starttime                   Shift
--------------------------------------------
2019-11-21 10:36:11.393      1 
2019-11-21 10:38:22.590      1
2019-11-21 10:40:32.940      1
2019-11-21 10:36:11.393      2
2019-11-21 10:38:45.407      2

我需要结果

Shift     Starttime1               starttime2                 starttime3
-----------------------------------------------------------------------
1       2019-11-21 10:36:11.393    2019-11-21 10:38:22.590  2019-11-21 10:40:32.940 
2       2019-11-21 10:36:11.393    2019-11-21 10:38:45.407

【问题讨论】:

    标签: sql sql-server tsql group-by pivot


    【解决方案1】:

    您可以使用row_number() 和聚合:

    select 
        shift,
        max(case when rn = 1 then starttime end) starttime1,
        max(case when rn = 2 then starttime end) starttime2,
        max(case when rn = 3 then starttime end) starttime3
    from (
        select t.*, row_number() over(partition by shift order by starttime) rn
        from mytable t
    ) t
    group by shift
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      相关资源
      最近更新 更多