oracle 一列拆成多列
时间: 2023-10-17 19:25:31 浏览: 141
oracle数据库一行拆成多行.sql
5星 · 资源好评率100%
您可以使用 Oracle SQL 中的 `CASE` 表达式来将一列拆分为多列。以下是一个示例:
假设您有一个名为 `table_name` 的表,其中包含一个名为 `column_name` 的列,您想将其拆分为三列 `column1`、`column2`和 `column3`。您可以使用以下查询来实现:
```sql
SELECT
CASE WHEN rownum % 3 = 1 THEN column_name END AS column1,
CASE WHEN rownum % 3 = 2 THEN column_name END AS column2,
CASE WHEN rownum % 3 = 0 THEN column_name END AS column3
FROM table_name;
```
这里的 `rownum` 是 Oracle 中的伪列,表示行号。通过使用 `rownum % 3` 运算符,我们可以确定每一行应该在哪个新列中显示。
请注意,此方法将结果按行编号,并将其分配给新列。如果表的行数不能被 3 整除,某些新列可能会包含空值。如果要按特定的顺序拆分列,您可能需要使用其他方法,例如使用连接查询或自连接来实现。
阅读全文