我有一个类似于“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}).*$','')
用空格替换结尾部分,但我得到的结果是'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')));
我们基本上考虑了最后一个连字符之前剩下的所有内容。
引用文档:
关于regexp-replace - 如何删除雪花中数字后的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68821606/