sql >> Databasteknik >  >> RDS >> Sqlserver

Pivot med flera kolumner i T-SQL

Skriv om med MAX(CASE...) och GROUP BY:

select 
  field1
, [1] = max(case when RowID = 1 then field2 end)
, [2] = max(case when RowID = 2 then field2 end)
, [3] = max(case when RowID = 3 then field2 end)
, [4] = max(case when RowID = 4 then field2 end)
from (
  select 
    field1
  , field2
  , RowID = row_number() over (partition by field1 order by field2)
  from tblname
  ) SourceTable
group by 
  field1

Därifrån kan du lägga till i fält3, fält4, etc.



  1. Uppföljning #1 på ledande jokerteckensökningar

  2. Jämförelse av databas med hög tillgänglighet - MySQL / MariaDB-replikering vs Oracle Data Guard

  3. Tillåten minnesstorlek på 8589934592 byte är slut

  4. Använda Oracle JDeveloper 12c med Oracle Database 12c på Oracle Cloud Platform, del 3