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

Как да създадете изглед с 14 000 колони в него?

Сериозно? 14 000 колони в изглед? Тук имате сериозен проблем с дизайна. Ако обаче искате да опитате, опитайте тази динамична обобщена заявка. Работи с ограничените данни, които сте предоставили:

DECLARE @ColumnList VARCHAR (MAX)
DECLARE @SQL VARCHAR(MAX)


-- Create a list of distinct Item IDs which will become column headers
SELECT @ColumnList = COALESCE(@ColumnList + ', ','') + 'ItemID' + CAST(I.ItemID AS VARCHAR(12)) FROM (SELECT DISTINCT ItemID FROM Item) I


SET @SQL = '
SELECT
  ShopID, ' + @ColumnList + '
FROM
(  
  SELECT
    s.ShopID,
    ItemID = ''ItemID'' + Cast(i.ItemID as varchar(12)),
    sim.ItemCost
  FROM
      dbo.Shop_Item_Mapping AS sim
      JOIN dbo.Shop AS s ON sim.ShopID = s.ShopID
      JOIN dbo.Item AS i ON SIM.ItemID = i.ItemID
)  T
PIVOT
(
    MIN(ItemCost)
    FOR T.ItemID IN (' + @ColumnList + ')
) AS PVT'


exec (@SQL)

Редактирани имена на полета според актуализирания въпрос.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Параметърът не работи толкова добре, колкото твърдото кодиране на стойността

  2. Съвместимост с SQL Server 2008 + PCI? Отнася се за PCI, както и за симетрични ключове!

  3. Грешка на SQL Server - HRESULT E_FAIL е върнат от повикване към COM компонент

  4. SSIS. Как да копирате данни от една таблица в различни таблици?

  5. Одит на схема на SQL сървър?