Snowflake regexp_substr从s3桶中获取文件夹名作为列



谁能帮我取一下"客户名" ?使用regexp_substr从下面的路径在雪花。这里的客户端名称可以有空格或下划线

s3://student-com/student-to-employee/学生1/Student_Party/20221223/客户端ABC/Employee_1st_data_20221223115427_4048241.csv

s3://student-com/student-to-employee/学生1/Student_Party/20221223/Client_XYZ/Employee_1st_data_20221223115427_4048241.csv

我用的是这样的:

的选择regexp_substr(元数据文件名 , '(.+/)*(.+. csv)的美元,1,1,"e")正如名字

可以使用

select regexp_substr(METADATA$FILENAME, '([^/]+)/[^/]*.csv$', 1,1,'e') as name

参见regex演示。

细节:

  • ([^/]+)-组1:除/以外的任何一个或多个字符
  • /- a/char
  • [^/]*-/以外的零个或多个字符
  • .csv-.csv
  • $-字符串结束

如果客户端名称始终是文件名前面的子文件夹,则可以使用split_part

select split_part(col,'/',-2)

最新更新