Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Транспониране на редове в колони въз основа на колона ID

можете да използвате обобщена клауза на SQL Server за това:

select
    p.*
from Table1
pivot(
    max([Field Selection])
    for [Field Name] in ([Rating 1], [Rating 2], [Rating 3])
) as p

или можете да завъртите ръчно:

select
    ID,
    max(case when [Field Name] = 'Rating 1' then [Field Selection] end) as [Rating 1], 
    max(case when [Field Name] = 'Rating 2' then [Field Selection] end) as [Rating 2],
    max(case when [Field Name] = 'Rating 3' then [Field Selection] end) as [Rating 3]
from Table1
group by ID

демонстрация на sql fiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се предаде COM обект от тип „System.__ComObject“ към тип интерфейс „Microsoft.VisualStudio.OLE.Interop.IServiceProvider“

  2. Как да получите числовата част от низ с помощта на T-SQL?

  3. Обратно сканиране на индекса на SQL Server:разбиране и настройка на производителността

  4. Как да конвертирате varchar в дата само когато съдържа валидна дата?

  5. 3 начина да разберете дали една колона е изчислена колона в SQL Server