3

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

我使用了这个查询

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

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

4

1 回答 1

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

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

参考文档:

于 2021-08-21T07:51:47.690 回答