news 2026/4/16 8:39:33

字符串分割并展开成表格的SQL实现方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
字符串分割并展开成表格的SQL实现方法

一、场景案例

在数据开发类项目中,常常会遇到需要将字符串进行切割并展开成表格的场景,如以下两种常见的案例:

1.标签类型数据:如将员工标签类型的数据

- 技能:Java、Spring、微服务、项目管理 - 项目经验:电商、金融、教育 - 工作风格:#执行力强 #跨部门协作 #数据驱动

2.分类层级数据:如将组织部门层级数据:“/集团/分公司/信息技术部/数据团队”

除此之外,在一些特定的业务场景中,如证券场景中,需要将一笔回购合约涉及到的多个质押券进行拆分(提取每个质押券有质押数量及对应标准券转换比例),数据示例如下:

另外,API请求的返回的数据多为半结构化的字典列表数据,需要将每行数据从列表中进行提取出来再进行后续的处理,如以下数据:

{"data": [ {"AMOUNT":-9000,"SUB_TYPE_NAME":"债券分销","BRANCH_NAME":"银行间","TYPE_NAME":"收入","BUSI_DATE":"20250831","PROJECT_NAME":"调整1月分销佣金-24****MTN001"}, {"AMOUNT":-1075.61,"SUB_TYPE_NAME":"债券分销","BRANCH_NAME":"银行间","TYPE_NAME":"收入","BUSI_DATE":"20250531","PROJECT_NAME":"调整计提1月及3月分销佣金"} ], "success":true }

二,各类主流SQL方言实现方法

针对这类场景,目前没有标准SQL函数支持实现该功能。各类SQL方言通过自定义方法进行支持,以下是常用的实现方法。

Spark/Hive SQL

采用split + explode(及升级版posexplode)。以下为测试案例:

利用该方法可以轻松的回购质押券进行拆分处理:

PostgreSQL

有两种方法:

方法一:首先利用string_to_array将字符串切割成数组,然后利用unnest将数组扩展成表

方法二:直接利用regexp_split_to_table将字符串切割并转换成表

Oracle

利用connect by + Level来实现

MySQL

5.x+版本只能使用数字辅助表+SUBSTRING_INDEX。

SELECT o.order_id, j.product_id FROM orders o JOIN JSON_TABLE( CONCAT('["', REPLACE(o.product_ids, ',', '","'), '"]'), '$[*]' COLUMNS (product_id INT PATH '$') ) AS j;

SQL Server

早期版本无内置函数,只能通过自定义表值函数(TVF)或者XML方法

2016之后的版本可使用原生方法STRING_SPLIT

--带序号的版本(SQL Server 2022+) SELECT value, ordinal FROM STRING_SPLIT('a,b,c', ',', 1) -- 第三个参数启用序号

三、结论

Spark SQL、PostgreSQL最方便,思路也比较相似,都是先将字符串拆分数组,然后扩展成表。SQLServer新版本实现较为方法,直接一个函数搞定。Oracle利用其connect by来实现,也相对便捷,只是相对主流SQL方言比较小众一点。Mysql新版本相对方便一点,老版本需要辅助表增加维护成本。

文章转载自:大汪的数据之路

原文链接:https://www.cnblogs.com/davablog/p/19497701

体验地址:http://www.jnpfsoft.com/?from=001YH

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 11:45:03

微信开发api文档

在微信生态深度渗透商业场景的背景下,基于WTAPI框架的微信个人号二次开发,通过开放接口、自然语言处理(NLP)、任务流程设计与安全隐私保护四大核心能力,可快速构建功能完备、交互智能、安全合规的微信机器人&#xff0…

作者头像 李华
网站建设 2026/4/10 20:00:34

【课程设计/毕业设计】基于python+django+vue的电影受众群体特征研究基于python的电影受众群体特征研究【附源码、数据库、万字文档】

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

作者头像 李华
网站建设 2026/4/11 7:24:01

1986-2024年中国500米分辨率类NPP-VIIRS人造夜间灯光栅格数据

人造夜间灯光(NTL)遥感是评估人类活动边界、量化人类活动强度和空间分布的重要指标。目前,该数据已经广泛应用于城市范围、不透水面、基础设施建设等一系列过程。为监测人类活动提供了创新性基础,在城市规划与管理、灾害监测、能源…

作者头像 李华
网站建设 2026/4/15 7:44:01

2026-01-20-牛客每日一题-小红删数字

title: 2026-01-20-牛客每日一题-小红删数字 date: 2026-01-20 tags: 算法学习牛客动态规划 题目信息 平台:牛客题目:小红删数字难度:中等题目链接 题目描述 给定长度为 n 的数字序列 a1…an,每一步在相邻两个数之间选择加号或…

作者头像 李华
网站建设 2026/4/15 23:25:22

如何选择EOR名义雇主的2026年度TOP5最佳推荐榜单

在全球化加速的背景下,EOR名义雇主服务成为企业进入国际市场的有效工具。选择合适的EOR名义雇主并不简单,企业需从多方面进行考量。首先,评估服务商在目标市场的经验和合规性非常重要,他们能为企业提供具体法律指导,确…

作者头像 李华
网站建设 2026/4/15 0:52:32

ChIP/CUT结果解读之Motif分析,充分利用组学数据

ChIP-seq(染色质免疫沉淀测序)和近年来大火的CUT&Tag(靶向剪切与标记技术)是表观遗传学研究的“黄金工具”,核心作用是精准定位蛋白质(如转录因子、组蛋白修饰)在基因组上的结合位点。而在C…

作者头像 李华