Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
postgresql正则表达式基于多个参数提取名称 问题描述:_Sql_Regex_String_Postgresql_Split - Fatal编程技术网

postgresql正则表达式基于多个参数提取名称 问题描述:

postgresql正则表达式基于多个参数提取名称 问题描述:,sql,regex,string,postgresql,split,Sql,Regex,String,Postgresql,Split,我真的很想在下表中重新格式化name字段。name字段中的观察值是非原子的,我只是尝试返回一个名称,而不是括号中的名称/旧ID,或者由逗号、分号或“or”分隔的二级/三级名称。我对sql非常陌生,任何regex insight都将不胜感激 可复制示例: 实际产量: 期望输出: 您可以替换“(”后面(包括“)的所有内容。这将处理前三个: select regexp_replace(name, ' [(].*', '') from t; 我不知道后三种情况的规则是什么。它们似乎完全是任意的。任何帮

我真的很想在下表中重新格式化name字段。name字段中的观察值是非原子的,我只是尝试返回一个名称,而不是括号中的名称/旧ID,或者由逗号、分号或“or”分隔的二级/三级名称。我对sql非常陌生,任何regex insight都将不胜感激

可复制示例: 实际产量: 期望输出:
您可以替换“(”后面(包括“)的所有内容。这将处理前三个:

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;