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 のデータを行に変換することができます。