sql >> データベース >  >> RDS >> Sqlserver

14000列のビューを作成するには?

    真剣に?ビューに 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. SQL Server 2008Expressの同じサーバーにSQLServerデータベースを複製するにはどうすればよいですか?

    2. 外部キーを一時的に無効にしますか?

    3. Mysqlの4バイト漢字サポート

    4. MySQL .frmからデータを復元する方法は?