从雪花中的文件路径中提取子字符串

Extract substring from file path in snowflake

提问人:JanakiRam 提问时间:7/26/2022 最后编辑:JanakiRam 更新时间:7/26/2022 访问量:407

问:

我需要从文件路径列表中提取子字符串。路径类似于“\rootfolder\subfolder”。需要提取子字符串作为“rootfolder”(介于第 2 个反斜杠和第 3 个反斜杠之间。

select SUBSTR('\\rootfolder\subfolder\', 3, (REGEXP_INSTR('\\rootfolder\subfolder\','\', 1, 3) - 3)) from table;

但是这个表达方式在《雪花》中并没有给出正确的结果。问题出在反斜杠字符上。

snowflake-cloud-data-platform osx-snow-leopard

评论


答:

0赞 Lukasz Szozda 7/26/2022 #1

使用SPLIT_PART

SELECT SPLIT_PART($$\\rootfolder\subfolder\$$, $$\$$, 3);
--
SELECT SPLIT_PART('\\\\rootfolder\\subfolder\\', '\\', 3);

输出:

enter image description here

使用美元报价来避免翻倍。\

评论

0赞 JanakiRam 7/26/2022
感谢您@lukasz回复。我试过 SELECT SPLIT_PART('\\rootfolder\subfolder\', '\', 2) ,但在雪花中不接受单反斜杠。语法错误“意外的”\“语法错误
0赞 Lukasz Szozda 7/26/2022
@JanakiRam 请使用美元报价或第二个版本a检查代码,因为两者都工作正常