如果值已经存在,是否可以从另外两列中添加一个带有摘要值的精简列来填充该列?

时间:2019-04-10 18:34:22

标签: sql postgresql

我想创建一个triger函数,以将一列的值提供给一列,该值是由两个其他具有预定值的列串联而成的。如果存在alredy值,那么我将在合并中添加一个int。

EX:

column1 -> 'aaa' 
column2 -> 'bbb' 

concated value -> 'aaabbb'

如果已经存在带有值'aaabbb'和'aaabbb1'的行,则在值->'aaabbb3'中添加一个整数。

所有三列都是文本类型。

我认为sql会是这样的:

UPDATE formulario.formulario_projetos SET repid = concat(distrito, tipo_ep, SELECT COUNT(repid));

1 个答案:

答案 0 :(得分:0)

更新声明

 UPDATE formulario.formulario_projetos
     SET repid = case when  repid = concat(distrito, tipo_ep) then concat(distrito, tipo_ep) + convert(nvarchar(10), (select count(repid) from  tbl where repid LIKE CONCAT(repid, '%'))) else concat(distrito, tipo_ep) end