使用SQL或Linq to Object拆分拼接字段实现表/实体结构重构
多场景下的字符串拆分转多行解决方案
MySQL 8.0+ 版本实现
SELECT j.name, a.State FROM 表A a JOIN JSON_TABLE( CONCAT('["', REPLACE(a.Name, '/', '","'), '"]'), '$[*]' COLUMNS (name VARCHAR(255) PATH '$') ) j;
PostgreSQL 版本实现
SELECT UNNEST(STRING_TO_ARRAY("Name", '/')) AS Name, "State" FROM 表A;
Python Pandas 实现
import pandas as pd # 此处df为已读取的表A数据对象 df = pd.DataFrame({ 'Name': ['Ken/Terri/Roberto', 'David/Ken', 'Kevin/John/Mary'], 'State': ['New York', 'Chicago', 'New Jersey'] }) # 拆分Name列并转为多行 df_b = df.assign(Name=df['Name'].str.split('/')).explode('Name').reset_index(drop=True)
Excel/WPS 实现
- 选中表A任意单元格,点击「数据」选项卡 -> 「从表格/范围」导入Power Query编辑器
- 选中Name列,点击「转换」选项卡 -> 「拆分列」-> 「按分隔符」
- 分隔符选择自定义,输入
/,拆分选项选「拆分为行」,确认后导出数据即可
内容的提问来源于stack exchange,提问作者Hussein
相关产品推荐
相关产品推荐

