SQL server Pivot on Multiple Columns

前端 未结 3 1422
失恋的感觉
失恋的感觉 2021-01-02 07:33

I am trying to pivot on multiple columns. I am using SQL server 2008. Here is what I have tried so far

CREATE TABLE #t ( id int, Rscd varchar(10),Accd varcha         


        
3条回答
  •  隐瞒了意图╮
    2021-01-02 08:16

    I would unpivot the columns into pairs first, then pivot them. Basically the unpivot process will convert the pairs of columns (rscd, position and accd, aposition) into rows, then you can apply the pivot. The code will be:

    select id, [1], [2], [11], [12]
    from
    (
      select id, col, value
      from #t
      cross apply
      (
        select rscd, position union all
        select Accd, position + 10
      ) c (value, col)
    ) d
    pivot
    (
      max(value)
      for col in ([1], [2], [11], [12])
    ) piv;
    

    See SQL Fiddle with Demo

提交回复
热议问题