【发布时间】:2018-02-10 23:04:09
【问题描述】:
问题描述:
我真的很想重新格式化下表中的名称字段。名称字段中的观察是非原子的,我只是想返回一个名称,而不是括号内的名称/旧 id,或者由逗号、分号或“或”分隔的名称的二级/三级。我对 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)
【问题讨论】:
-
我不知道最后三个的规则是什么。他们似乎完全武断。
-
任何帮助解决这些案例中的一个,我们将不胜感激。在最坏的情况下,我将不得不手动更新一些任意观察结果。
标签: sql regex string postgresql split