假设我的数据是:
abcd abcd aaa 1234 1234566789 abcd abcd aaa 123456789 1234sfjsalfj
我想做的是:
aaa
,那么我保留它。(3-6)
,我不需要其他数字。因此,应将此示例转移到:
abcd abcd aaa 1234 abcd abcd sfjsalfj
如何在雅典娜SQL中做到这一点?也许一个查询都没有。使用with或任何其他查询组合也可以。
发布于 2022-04-01 07:07:17
您应该能够使用此regex在一个查询中执行替换操作:
(?<!aaa |\d)\d+\s*|(aaa (\d{1,2}(?!\d)|\d{7,})\s*)
这查找没有aaa
前面的任何数字,或者前面没有aaa
的1、2或>6位数字。任何匹配都应替换为空字符串(使用两个参数版本的regexp_replace
,即
SELECT regexp_replace('abcd abcd aaa 1234 1234566789 abcd abcd aaa 123456789 1234sfjsalfj', '(?<!aaa |\d)\d+\s*|(aaa (\d{1,2}(?!\d)|\d{7,})\s*)')
Regex在regex101上的演示
https://stackoverflow.com/questions/71702323
复制相似问题