UNPIVOT 函数用法
时间: 2023-09-27 21:07:06 浏览: 145
pivot_unpivot
UNPIVOT 函数用于将一行数据拆分为多行,还原原始数据的结构。它的基本语法如下:
```
SELECT <非主键列>, <值列>
FROM <表名>
UNPIVOT (<值列> FOR <非主键列> IN (<列1>, <列2>, ...))
```
其中,`<非主键列>` 是指在拆分后的结果中表示原始数据的列, `<值列>` 是指在拆分后的结果中表示原始数据的值。 `<表名>` 是指要操作的表名。
`<值列> FOR <非主键列> IN (<列1>, <列2>, ...)` 这部分是用来指定要拆分的列。可以指定一个或多个列拆分,并且可以使用逗号分隔。
以下是一个示例:
```
SELECT *
FROM (
SELECT employee_id, salary, commission_pct
FROM employees
)
UNPIVOT (
value FOR attribute IN (salary, commission_pct)
);
```
这个示例从 `employees` 表中选择 `employee_id`, `salary`, `commission_pct` 列,并使用 UNPIVOT 函数将 `salary` 和 `commission_pct` 列拆分为两行,其中 `attribute` 列表示原始数据的属性,`value` 列表示原始数据的值。
注意,UNPIVOT 函数只能在 Oracle 数据库中使用。
阅读全文