SQL Serverで1行を複数行に変換する方法は何ですか?

SQL Serverでは、UNPIVOT操作を使用して1行のデータを複数行のデータに変換することができます。UNPIVOT操作は、列データを行データに変換する逆の操作です。

UNPIVOT を使用して、1 行のデータを複数行のデータに変換する方法を示す例が以下にあります。

employeesというテーブルがあると仮定して、以下のフィールドが含まれています。

従業員ID名姓給料1
ジョン
ドウ
5000

一行のデータを複数行のデータに変換するには、次のクエリを使用できます。

SELECT employee_id, column_name, value
FROM employees
UNPIVOT
(
  value FOR column_name IN (first_name, last_name, salary)
) AS unpvt;

上記のクエリを実行すると、以下の結果が生成されます。

社員ID列名値1
名前
ジョン1
苗字
ドー1
給料
5000

UNPIVOT文にて、列名を指定して、first_name、last_name、salary のデータを行に変換することができます。

bannerAds