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

MySQL-列を行にピボット解除する方法は?

    ピボット解除しようとしています データ。 MySQLにはピボット解除機能がないため、UNION ALLを使用する必要があります 列を行に変換するクエリ:

    select id, 'a' col, a value
    from yourtable
    union all
    select id, 'b' col, b value
    from yourtable
    union all
    select id, 'c' col, c value
    from yourtable
    

    SQL Fiddle withDemo を参照してください。 。

    これは、CROSS JOINを使用して実行することもできます。 :

    select t.id,
      c.col,
      case c.col
        when 'a' then a
        when 'b' then b
        when 'c' then c
      end as data
    from yourtable t
    cross join
    (
      select 'a' as col
      union all select 'b'
      union all select 'c'
    ) c
    

    SQL Fiddle withDemo を参照してください。



    1. SQLServerレポートサービスレポートに交互の行の色を追加する

    2. PostgreSQLでの一括/バッチ更新/アップサート

    3. VisualStudio2017インストーラープロジェクトを使用したSQLServer名前付きインスタンス

    4. 手動でDBを更新した後、Hibernateの第2レベルのキャッシュをクリアします