postgresql正则表达式基于多个参数提取名称 问题描述:
我真的很想在下表中重新格式化name字段。name字段中的观察值是非原子的,我只是尝试返回一个名称,而不是括号中的名称/旧ID,或者由逗号、分号或“or”分隔的二级/三级名称。我对sql非常陌生,任何regex insight都将不胜感激 可复制示例: 实际产量: 期望输出:postgresql正则表达式基于多个参数提取名称 问题描述:,sql,regex,string,postgresql,split,Sql,Regex,String,Postgresql,Split,我真的很想在下表中重新格式化name字段。name字段中的观察值是非原子的,我只是尝试返回一个名称,而不是括号中的名称/旧ID,或者由逗号、分号或“or”分隔的二级/三级名称。我对sql非常陌生,任何regex insight都将不胜感激 可复制示例: 实际产量: 期望输出: 您可以替换“(”后面(包括“)的所有内容。这将处理前三个: select regexp_replace(name, ' [(].*', '') from t; 我不知道后三种情况的规则是什么。它们似乎完全是任意的。任何帮
您可以替换“(”后面(包括“)的所有内容。这将处理前三个:
select regexp_replace(name, ' [(].*', '')
from t;
我不知道后三种情况的规则是什么。它们似乎完全是任意的。任何帮助解决其中一种情况都将不胜感激。最坏的情况是,我必须手动更新一些任意的观察结果。谢谢,这肯定完成了大部分工作!
select * from mytable;
id | name
----------+-------------------------
N6BMTW-D | NOUGAT (WAS X25TW)
N2BHXS | JESTER (WAS X13SX)
N2BHS-C | APRIL STAR (WAS X13S-C)
N2BHS-AG | JOY (LITTLE SPECKLES)
M1 | M; Real M; Mort
M7D | OS, SEBASTIAN
M9 | K OR BOBBIE
(7 rows)
select * from mytable;
id | name
----------+-------------------------
N6BMTW-D | NOUGAT
N2BHXS | JESTER
N2BHS-C | APRIL STAR
N2BHS-AG | JOY
M1 | MORT
M7D | SEBASTIAN
M9 | BOBBIE
(7 rows)
select regexp_replace(name, ' [(].*', '')
from t;