我真的想要重新格式化下表中的名称字段。名称字段中的观察是非原子的,我只是尝试返回单个名称而不是括号内的名称/旧ID,或者用逗号,分号或“OR”分隔的名称/ secondary / tertiary。我是sql的新手,非常感谢任何正则表达式的见解!
create table myTable(
id varchar(255),
name varchar(255)
);
insert into mytable(
id,
name)
values(
'N6BMTW-D',
'NOUGAT (WAS X25TW)');
insert into mytable(
id,
name)
values(
'N2BHXS',
'JESTER (WAS X13SX)');
insert into mytable(
id,
name)
values(
'N2BHS-C',
'APRIL STAR (WAS X13S-C)');
insert into mytable(
id,
name)
values(
'N2BHS-AG',
'JOY (LITTLE SPECKLES)');
insert into mytable(
id,
name)
values(
'M1',
'M; Real M; Mort');
insert into mytable(
id,
name)
values(
'M7D',
'OS, SEBASTIAN');
insert into mytable(
id,
name)
values(
'M9',
'K OR BOBBIE');
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)
答案 0 :(得分:1)
你可以在"之后(包括)替换所有内容。 ("。这处理前三个:
select regexp_replace(name, ' [(].*', '')
from t;