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

MySQLでの行から列への変換

    これはピボットテーブルと呼ばれます。作成するのはちょっと厄介です:

    SELECT ID, 
     MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
     MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
     MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
     Email
    FROM mytable
    GROUP BY ID, Email
    

    個別のTypeをすべて知っている必要があることに注意してください クエリを作成する前の値。 SQLでは、テーブル内のデータ値を検出するため、結果セットが動的に列を追加することはできません。列はクエリの準備時に修正する必要があります。



    1. 単一のクエリで再帰的なカテゴリ?

    2. SQLServerのINSERTINTOSELECTクエリでの重複を避けてください

    3. クエリ以外で使用するとエラーが発生する

    4. UNIQUE制約とINSERT前のチェック