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

Завъртане на няколко колони в T-SQL

Пренапишете с помощта на MAX(CASE...) и 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

От там можете да добавяте в поле3, поле4 и т.н.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преименувайте SA акаунта в SQL Server (пример за T-SQL)

  2. Събития на изчакване на SQL сървър -2

  3. Защо не мога да изпълня агрегатна функция върху израз, съдържащ агрегат, но мога да го направя, като създам нов оператор за избор около него?

  4. Различни начини за сравняване на схема и данни на таблици на SQL Server

  5. SQL:Изберете Топ 3 записа + Сума от количество