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

SQL-転置する方法は?

    MySQLはANSIPIVOT/ UNPIVOT構文をサポートしていないため、次のものを使用できます。

      SELECT t.userid
             MAX(CASE WHEN t.fieldname = 'Username' THEN t.fieldvalue ELSE NULL END) AS Username,
             MAX(CASE WHEN t.fieldname = 'Password' THEN t.fieldvalue ELSE NULL END) AS Password,
             MAX(CASE WHEN t.fieldname = 'Email Address' THEN t.fieldvalue ELSE NULL END) AS Email
        FROM TABLE t
    GROUP BY t.userid
    

    ご覧のとおり、CASEステートメントは値ごとに定義する必要があります。これを動的にするには、 MySQLのプリペアドステートメント(動的SQL)構文



    1. WHERE句にパラメータ化された値が含まれている場合にSQLServerがインデックスシークの代わりにインデックススキャンを使用するのはなぜですか

    2. ORACLE 11gのテーブル値関数? (パラメータ化されたビュー)

    3. PostgreSQLでの非同期レプリケーションから同期レプリケーションへの変換

    4. SQLiteクエリ結果で区切り文字をコンマに変更します