希望捕获出现在连字符后.file_extension之前的客户代码…
示例:DWL-202_EJJFT_Transactions-EOTTFFS001.csv
在这种情况下,我希望捕获EOTTFFS001
作为我的帐户代码。
到目前为止,我已经尝试过使用RIGHT
,但由于我们的客户有不同的长度代码,有时我会使用-DJTSM001.csv
,因为在这种情况下,客户有一个五个字母的代码。这种方法也不会删除CSV。我还尝试将RIGHT
语句嵌套在另一个RIGHT
语句中,但这似乎不起作用。
我的目标是使用REGEXP_SUBSTR
。
我想你只需要最后一个句点之前的无连字符字符串:
select regexp_substr(col, '-([^-]+)[.][^.-]+$', 1, 1, 'e')
在中抛出基于split_part
的替代方案
select split_part(replace(col,'-','.'),'.',-2) -- -2 gets you the second last item