如何使用Snowflake查询提取字段第一个'/'后的LOCATION内容
Snowflake提取LOCATION字段实现方案
你给出的三类数据格式中,LOCATION都固定为/分隔符拆分后的第二个分段,直接用Snowflake内置的SPLIT_PART函数即可快速实现提取需求。
基础查询语句
直接查询提取LOCATION结果:
SELECT 替换为你的原始列名, SPLIT_PART(替换为你的原始列名, '/', 2) AS LOCATION FROM 替换为你的表名;
函数说明:SPLIT_PART会按照指定分隔符对字符串做拆分,第三个参数指定取拆分后的第N个分段,此处取第2个分段正好匹配三类格式下的LOCATION值。
持久化存储到新列
方案1:在原表新增列存储
-- 新增LOCATION字段 ALTER TABLE 替换为你的表名 ADD COLUMN LOCATION VARCHAR; -- 批量填充字段值 UPDATE 替换为你的表名 SET LOCATION = SPLIT_PART(替换为你的原始列名, '/', 2);
方案2:生成新表存储(不修改原表)
CREATE OR REPLACE TABLE 替换为你的新表名 AS SELECT *, SPLIT_PART(替换为你的原始列名, '/', 2) AS LOCATION FROM 替换为你的原表名;
异常兼容(可选)
如果需要兼容部分数据没有/分隔符的异常场景,可增加条件判断避免返回空值:
SELECT 替换为你的原始列名, CASE WHEN CONTAINS(替换为你的原始列名, '/') THEN SPLIT_PART(替换为你的原始列名, '/', 2) ELSE '无匹配LOCATION' END AS LOCATION FROM 替换为你的表名;
内容的提问来源于stack exchange,提问作者Kavya shree
相关产品推荐
相关产品推荐

