mysqlで行を列に変換するSQL文の書き方は何ですか?

MySQLでは、行を列に変換する方法として、次の方法があります:

  1. CASE文と集計関数を使用する:
SELECT
  id,
  MAX(CASE WHEN key = 'key1' THEN value END) AS value1,
  MAX(CASE WHEN key = 'key2' THEN value END) AS value2,
  MAX(CASE WHEN key = 'key3' THEN value END) AS value3
FROM
  your_table
GROUP BY
  id;
  1. PIVOT関数を使用(MySQL 8.0以降でサポート):
SELECT
  id,
  value1,
  value2,
  value3
FROM
  your_table
PIVOT (
  MAX(value)
  FOR key IN (key1, key2, key3)
) AS p;

これらの文は、your_tableという名前のテーブルがあり、id、key、valueの列が含まれていることを前提としています。実際のテーブル構造とデータに合わせて調整してください。

bannerAds