获取 x 个特定字符后的剩余字符串(右) - Snowflake

NIC*_*301 4 sql snowflake-cloud-data-platform

我正在尝试获取特定字符的 x 个数字之后的剩余字符串(从右侧开始)...例如:

D-ERT-ESTTE
D-EST-AER-EJEL
D-E-AD
Run Code Online (Sandbox Code Playgroud)

我想获取第二个“-”之后的所有字符串数据

预期结果:

ESTTE
AER-EJEL
AD
Run Code Online (Sandbox Code Playgroud)

我尝试过修改substring(SKU,1,regexp_instr(SKU,'-',1,2)-1)

,然而,这只是给了我第二个“-”左边的所有内容......但我需要从右边开始

更新:看起来下面的方法可能有效:

substr(SKU,regexp_instr(SKU,'-',1,2)+1)
Run Code Online (Sandbox Code Playgroud)

小智 5

尝试这个

select fld1, SPLIT_PART(fld1,'-',3), substr(fld1,regexp_instr(fld1,'-',1,2)+1), regexp_instr(fld1,'-',1,2) from (
select 'D-ERT-ESTTE' fld1 from dual union all
select 'D-EST-AER-EJEL' from dual union all
select' D-E-ADF' from dual );
Run Code Online (Sandbox Code Playgroud)