从字符串 impala 查询中提取 12 个字符

问题描述 投票:0回答:1

我有一列包含productID、catalogID 和organization。 例如1000002121US200100包含1000002121=产品ID,US20=目录ID,01=产品渠道,最后00=销售区域。

有没有办法可以使用字符串的位置来分割它。 我可以执行 left('fieldname',10) 来获取前 10 个字符,从而获得产品 ID。 如何将接下来的 4 个字符提取到单独的列中等等?

我尝试过使用 left() 函数、split_part 和 regex_extract

regex extract impala
1个回答
0
投票

这行不通? -- 获取产品ID(前10个字符) 选择左侧(字段名称,10)作为产品ID,

-- 获取catalogID(接下来的4个字符) SUBSTRING(字段名称, 11, 4) AS 目录ID,

-- 获取产品渠道(接下来的 2 个字符) SUBSTRING(字段名称, 15, 2) AS 产品通道,

-- 获取销售区域(最后2个字符) SUBSTRING(字段名称, 17, 2) AS salesArea

来自你的表;

© www.soinside.com 2019 - 2024. All rights reserved.