subSnowflake字符串提取



我有一个字段,在一列中有多个值,用管道(|)分隔符分隔,如下所示:

PR|20078|ABBV|Ven|1|PS|1|DFT|功效|1|0|W1|Key22 CLL EASTERN|石蕊膏ID: 865avvwr|2022-04-28">

我要提取"石蕊"ID: 865avvwr">

该值可以显示在数据中的任意两个管道分隔符之间。你能帮帮我吗?

谢谢,阿奴

我尝试使用REGEXP_SUBSTR,但我没有得到语法正确。

选项1 -使用regex substr()提取单词,但如果在Litmus之后有多个单词,则使用选项2。

select regexp_substr('W1|Key22 CLL EASTERN|Litmus ID: 865avvwr|2022-04-28','Litmus ID\W+(\w+)', 1, 1, 'e', 1) 

选项2 -
你可以使用正则表达式instr, substring,然后像下面这样分割部分。

split_part(
substr(mycol,
regexp_instr(mycol,'Litmus ID')
)
,'|',1    
) output

regexp_instr()-用于确定单词Litmus ID的位置,
substr()-用于从该点开始剪切字符串,如Litmus ID: abcxyz|othrssplit_part()-用于基于|分割数据并显示第一部分-类似Litmus ID: abcxyz

示例SQL

select split_part(
substr('W1|Key22 CLL EASTERN|Litmus ID: 865avvwr|2022-04-28',
regexp_instr('W1|Key22 CLL EASTERN|Litmus ID: 865avvwr|2022-04-28','Litmus ID'))
,'|',1    
) c

相关内容

  • 没有找到相关文章

最新更新