如何删除雪花中数字后的字符

how to remove characters after digits in snowflake

我有一个类似于“22-ABCD-BC-220602-11484-TEST”的字符串,我想从该字符串的末尾删除 'TEST' 一词。 重点是'TEST'每次都变,不是常量。所以我想做的是编写查询以删除字符串末尾数字后面的内容。 就像在这种情况下,我希望它删除 220602-11484 之后的所有内容。

我使用了这个查询

select REGEXP_REPLACE('22-ABCD-BC-220602-11484-TEST','([0-9]{6}-[0-9]{5}).*$','')

用 space 替换结尾部分,但我得到的结果是 '22-ABCD-BC-' 并且它也删除了数字

select left('22-ABCD-BC-220602-11484-TEST', len('22-ABCD-BC-220602-11484-TEST') - charindex('-', reverse('22-ABCD-BC-220602-11484-TEST')));

我们基本上考虑了最后一个连字符之前剩下的所有内容。

参考文档: