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

Транспонирайте някои колони в редове, като използвате обобщена информация с SQL

Има няколко неща, които не са наред с вашата заявка.

Първо, липсва ви агрегатна функция на вашия PIVOT. Имате нужда от агрегат около propertyvalue .

Второ, трябва да оградите $row1 , и т.н. с квадратни скоби, а не с единични кавички.

Трето, бих използвал различен псевдоним за as pivot

В резултат на това кодът ще бъде:

select * 
from 
(
  select name, propertyvalue, displayname
  from indexrows
) a
pivot
(
  max(propertyvalue)
  for [displayname] in ([$row1], [$row2], [$row3])
) piv;

Вижте 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. Преминаване от dev към prod с .net Membership Provider

  2. Тактика за нормализиране на SQL Server:varchar срещу int идентичност

  3. Получавате часа на дата и час с помощта на T-SQL?

  4. Как да използвам променлива на таблица в актуализация от заявка за избор?

  5. Как да добавите пореден номер за групи в SQL заявка без временни таблици