sql >> Databáze >  >> RDS >> Sqlserver

Jak vytvořit pohled se 14 000 sloupci?

Vážně? 14 000 sloupců v pohledu? Máte zde vážný problém s designem. Pokud to však chcete zkusit, vyzkoušejte tento dynamický pivotový dotaz. Pracuje s omezenými údaji, které jste poskytli:

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)

Upravené názvy polí podle aktualizované otázky.




  1. Jak exportovat a importovat databázi mysql s jejími daty pomocí skriptu php?

  2. MySqlDb vyvolá Operand by měl obsahovat 1 sloupec(y) na příkazu insert ignore

  3. Pole SQL Server se zkracuje

  4. Jak testovat transakce MySQL?