You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询将表值函数拆分结果与对应ID关联输出?

解决方案:关联表值函数拆分字符串并匹配ID

这是一个非常典型的字符串拆分后与原表主键关联的需求,利用你现有的SPLIT表值函数,结合数据库的关联查询语法就能轻松实现,不同数据库的写法略有差异,下面分情况说明:

适用于SQL Server的写法

使用CROSS APPLY关键字,它可以让主表的每一行数据与表值函数返回的结果集进行关联:

SELECT t.ID, s.COMPONENT
FROM TEST t
CROSS APPLY SPLIT(t.CONTENT) s;

适用于PostgreSQL、Oracle等支持ANSI标准的数据库

使用LATERAL JOIN(部分数据库也可写为JOIN LATERAL),作用和CROSS APPLY一致:

SELECT t.ID, s.COMPONENT
FROM TEST t
LATERAL JOIN SPLIT(t.CONTENT) s;

原理说明

  • 对于TEST表中的每一行数据,SPLIT(t.CONTENT)会把当前行的CONTENT字段拆分成对应的多行子字符串结果
  • CROSS APPLY/LATERAL JOIN会将原行的ID与拆分后的每一行COMPONENT进行配对,最终生成每个ID对应其CONTENT拆分后所有子字符串的结果集

执行上述查询后,返回的结果完全符合你的期望:

ID | COMPONENT
1 | "abc"
1 | "def"
1 | "ghi"
2 | "jkl"
2 | "mno"
2 | "pqr"

内容的提问来源于stack exchange,提问作者Alexander Sokol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 19:02:38