我有一个场景
Case 1: "NO 41 ABC STREET"
Case 2: "42 XYZ STREET"
对于我表中的近10万个数据。
我想要一个正则表达式
NO 41
'并保留ABC STREET
作为情况1的输出,而42 XYZ STREET
'。答案 0 :(得分:1)
regexp_replace('NO 41 ABC STREET', 'NO [0-9]+ |([0-9]+)', '\1')
输出ABC STREET
。
regexp_replace('42 XYZ STREET', 'NO [0-9]+ |([0-9]+)', '\1')
输出42 XYZ STREET
。
答案 1 :(得分:1)
您在表中仅提供了两种数据场景。假设您只想替换以“ NO”开头的列中的字符,后跟数字,然后在其他字符前加空格,则可以使用它。
查询:
select s,REGEXP_REPLACE(s,'^NO +\d+ +') as r FROM data
Results :
| S | R |
|------------------|---------------|
| NO 41 ABC STREET | ABC STREET |
| 42 XYZ STREET | 42 XYZ STREET |
如果您要过滤的数据比较复杂,请编辑问题并清楚地说明。