如何用sql将原始数据的一列进行分列,并且按照分列后的情况进行行拓展
时间: 2024-03-27 14:35:12 浏览: 111
SQL SERVER 根据关键字符,将一列分成多行
4星 · 用户满意度95%
可以使用SQL的分列函数将原始数据的一列进行分列,并使用UNPIVOT函数将纵向的列转化为横向的行。
假设原始数据的表名为table1,原始数据的一列为column1,需要将column1按照逗号进行分列,并按照分列后的情况进行行拓展,可以使用以下SQL语句:
```
SELECT id, [value], [column]
FROM
(SELECT id, column1, ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) AS rn
FROM table1) p
UNPIVOT
([value] FOR [column] IN
(column1)
)AS unpvt
```
其中,id为原始数据中的唯一标识列,[value]为分列后的值,[column]为分列的列名。
该SQL语句将原始数据的表按照id分组,使用ROW_NUMBER函数生成行号rn,再将column1列进行分列并使用UNPIVOT函数将分列后的列转化为行,最后SELECT语句选择id、[value]、[column]三列并输出。
需要注意的是,该SQL语句只能将原始数据中一列进行分列,如果需要分列多列,则需要根据需要进行修改。
阅读全文