如何从Snowflake的Variant列中提取指定目标文本内容?
提取Snowflake Variant列中指定文本的方法
针对你提供的Variant列内容,以下两种方法可快速提取"Started review in 1973":
方法一:正则表达式提取(适配性强)
先将Variant类型转为字符串,再用Snowflake的REGEXP_SUBSTR函数通过正则匹配目标内容:
SELECT REGEXP_SUBSTR( TO_VARCHAR(your_variant_column), '<BR>\\s*(.*)"$', -- 匹配<BR>(含可能的空格)后到末尾引号前的内容 1, 1, 'i', 1 -- 忽略大小写,提取第一个捕获组 ) AS extracted_review_text FROM your_table_name;
如果目标文本格式固定(比如都是"Started review in 年份"),也可以把正则写得更精准:'Started review in \\d{4}',直接匹配完整目标字符串。
方法二:字符串分割(结构固定时更高效)
如果确定<BR>标签在内容中仅出现一次,且目标内容刚好在它之后,用SPLIT_PART分割后清理末尾引号更简单:
SELECT TRIM(SPLIT_PART(TO_VARCHAR(your_variant_column), '<BR>', 2), '"') AS extracted_review_text FROM your_table_name;
SPLIT_PART按<BR>分割字符串并取第二部分,TRIM去掉末尾的双引号即可得到目标文本。
内容的提问来源于stack exchange,提问作者user1526892
相关产品推荐
相关产品推荐

