字符串修改中的问题链接操作

时间:2019-01-30 15:42:14

标签: string postgresql function

我尝试对Postgresql数据库的列中的字符串进行链式操作。如果我分别执行这两个操作,那么它会起作用:

select REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(TRANSLATE (upper('A BUCHE'),'ÇÀÄÂÉÈÊËÏÎÌÖÔÒÜÛÙ-','CAAAEEEEIIIOOOUUU '), '\y[A-Z]{1}\y', '', 'g'),'LA','','g'),'DE','','g');

select split_part('BUCHE',' ', 1);

第一个为BUCHE,第二个为BUCHE。

但是当我链接它们时,结果是一个空字符串

select split_part(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(TRANSLATE (upper('A BUCHE'),'ÇÀÄÂÉÈÊËÏÎÌÖÔÒÜÛÙ-','CAAAEEEEIIIOOOUUU '), '\y[A-Z]{1}\y', '', 'g'),'LA','','g'),'DE','','g'),' ', 1);

你知道怎么了吗?

第二个问题:
在进行一些匹配之前,我会执行所有这些操作以更正姓氏和名字。由于我的表有1500万行,因此从性能角度来看更好:

  • 像我一样对字符串进行链式操作
  • 或一次执行一项操作

1 个答案:

答案 0 :(得分:0)

我找到了答案:有一个空白。我在链条上加了装饰

select split_part(TRIM(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(TRANSLATE(upper('de la a buche'),) ','g'),'LA','','g'),'DE','','g')),'',1);