Я пытаюсь воссоздать функцию FINDNTH
из Таблицы в Snowflake / SQL. Чтобы использовать для этой формулы: lower(ifnull(left([SKU],(FINDNTH([SKU],"_",2)-1)),[SKU]))
https://help.tableau.com/current/pro/desktop/en-us/functions_functions_string.htm FINDNTH(string, substring, occurrence)
Цель состоит в том, чтобы найти второе вхождение персонажа, а затем вернуть все, что осталось от него.
Поле: CGM415_Black_3XL
Желаемый результат: CGM415_Black
Я пытался использовать Position и Charaindex
https://docs.snowflake.net/manuals/sql-reference/functions/position.html https://docs.snowflake.net/manuals/sql-reference/functions/charindex.html
Select
position('_',sku) a,
position('_',sku,a) b,
position('_',sku,position('_',sku)) c,
CHARINDEX('_',sku) d,
CHARINDEX('_',sku,d) e,
CHARINDEX('_',sku,CHARINDEX('_',sku)) f,
sku from DATABASE;
Все эти столбцы (af) показывают 7 вместо 13 (если значением было CGM415_Black_3XL).