在 SQL Server 中,可以使用 UNPIVOT 操作将一行数据转换为多行数据。UNPIVOT 操作是将列数据转换为行数据的逆操作。
下面是一个示例,展示如何使用 UNPIVOT 将一行数据转换为多行数据:
假设有一个名为 employees 的表,包含以下字段:
employee_id | first_name | last_name | salary |
---|---|---|---|
1 | John | Doe | 5000 |
可以使用以下查询将一行数据转换为多行数据:
SELECT employee_id, column_name, value
FROM employees
UNPIVOT
(
value FOR column_name IN (first_name, last_name, salary)
) AS unpvt;
运行以上查询将生成以下结果:
employee_id | column_name | value |
---|---|---|
1 | first_name | John |
1 | last_name | Doe |
1 | salary | 5000 |
在 UNPIVOT 语句中,通过指定 value FOR column_name IN (first_name, last_name, salary)
将列 first_name、last_name 和 salary 转换为行数据。