在Oracle数据库中,可以使用UNPIVOT操作将列转换为行。以下是一个示例:
假设有以下表格t1:
| ID | Name | Age | City |
|---|---|---|---|
| 1 | Tom | 25 | Paris |
| 2 | Jane | 30 | Tokyo |
| 3 | Alex | 35 | London |
要将列转换为行,可以使用UNPIVOT操作,如下所示:
SELECT *
FROM t1
UNPIVOT (Value FOR Attribute IN (Name, Age, City))
运行上述查询后,将得到以下结果:
| ID | Attribute | Value |
|---|---|---|
| 1 | Name | Tom |
| 1 | Age | 25 |
| 1 | City | Paris |
| 2 | Name | Jane |
| 2 | Age | 30 |
| 2 | City | Tokyo |
| 3 | Name | Alex |
| 3 | Age | 35 |
| 3 | City | London |
通过UNPIVOT操作,每个原始行被转换为多个行,每个行包含了原始行的ID、属性和值。