Snowflake cloud data platform 如何在Snowflake/SQL中查找字符串中的第二个/第三个匹配项

Snowflake cloud data platform 如何在Snowflake/SQL中查找字符串中的第二个/第三个匹配项,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我正在尝试将Tableau中的FINDNTH函数重新创建为Snowflake/SQL。要用于此公式:lower(ifnull(左([SKU],(FINDNTH([SKU],“,”,2)-1)),[SKU]) FINDNTH(字符串、子字符串、引用) 目标是找到角色的第二个匹配项,然后返回它剩下的所有内容 字段:CGM415_黑色_3XL 期望结果:CGM415_黑色 我试过使用位置和字符索引 挑选 位置(sku)a, 位置(“”),sku,a)b, 位置(sku),位置(sku))c,

我正在尝试将Tableau中的
FINDNTH
函数重新创建为Snowflake/SQL。要用于此公式:
lower(ifnull(左([SKU],(FINDNTH([SKU],“,”,2)-1)),[SKU])

FINDNTH(字符串、子字符串、引用)

目标是找到角色的第二个匹配项,然后返回它剩下的所有内容

字段:CGM415_黑色_3XL

期望结果:CGM415_黑色

我试过使用位置和字符索引


挑选
位置(sku)a,
位置(“”),sku,a)b,
位置(sku),位置(sku))c,
CHARINDEX(单品)d,
CHARINDEX(“,”sku,d)e,
CHARINDEX(单品单位,CHARINDEX(单品单位))f,
数据库中的sku;

所有这些列(a-f)都显示7而不是13(如果CGM415_Black_3XL是值)。

以下SQL将给出结果

substring(sku,1,regexp_instr(sku,'_',1,2)-1)

regexp_instr(sku,'-',1,2)将为您提供第二个

是的!完美的非常感谢。