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

如何在Presto中将ROW类型单列拆分为多个独立列?

SQL拆分列解决方案

你不需要使用unnest或split_part实现该需求,核心逻辑为直接访问B字段的内部元素,不会生成额外行,具体写法分两种场景:

场景1:B为固定长度ARRAY类型(匹配你给出的示例数据格式)

绝大多数SQL引擎的数组下标从1开始,写法如下:

SELECT 
  A,
  B[1] AS B1,
  B[2] AS B2,
  B[3] AS B3
FROM 你的表名;

少数使用0作为数组起始下标的引擎,可将下标依次替换为0、1、2即可生效。

场景2:B为ROW/STRUCT类型

如果B是预定义了字段的结构化ROW/STRUCT类型,直接用.运算符访问内部属性即可:

SELECT 
  A,
  B.第一个字段名 AS B1,
  B.第二个字段名 AS B2,
  B.第三个字段名 AS B3
FROM 你的表名;

把SQL中的第一个字段名等占位符替换为你实际表结构中ROW类型的内部字段名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:39:02