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

3 列の SQL PIVOT

    次のようにしてみてください:

    DECLARE @myTable AS TABLE([ID] INT, [Field] VARCHAR(20), [Value] VARCHAR(20))
    INSERT INTO @myTable VALUES ('1', 'year', '2011')
    INSERT INTO @myTable VALUES ('1', 'month', 'August')
    INSERT INTO @myTable VALUES ('2', 'year', '2009')
    INSERT INTO @myTable VALUES ('1', 'day', '21')
    INSERT INTO @myTable VALUES ('2', 'day', '31')
    INSERT INTO @myTable VALUES ('2', 'month', 'July')
    INSERT INTO @myTable VALUES ('3', 'year', '2010')
    INSERT INTO @myTable VALUES ('3', 'month', 'January')
    INSERT INTO @myTable VALUES ('3', 'day', NULL)
    
    SELECT [ID], [year], [month], [day]
    FROM
    (
          SELECT [ID], [Field], [Value] FROM @myTable
    ) t
    PIVOT
    (
        MIN([Value]) FOR [Field] IN ([year], [month], [day]) 
    ) AS pvt
    ORDER BY pvt.[year] DESC
      

    結果は次のようになります:

    ID  year    month   day
    1   2011    August  21
    3   2010    January NULL
    2   2009    July    31
      

    1. #1072キー列が存在しないMySQL外部キーのエラー

    2. JSON_STORAGE_SIZE()–MySQLでJSONドキュメントのストレージサイズを検索する

    3. MySQLDBへの/からの画像の挿入/表示

    4. postgresql date_truncを任意精度に?