在PostgreSQL中更新和连接列

时间:2018-04-01 15:32:25

标签: sql postgresql

我想在我已经在我的表中创建的新属性中更新和连接3列。但是,当我执行我的代码时,它会将之前具有值的属性放在null

我的代码示例:

update saber2012_1
    set estu_fecha_nacimiento = Concat(estu_nacimiento_dia,'/',estu_nacimiento_mes,'/',estu_nacimiento_anno); 

在此图片中,null之前的所有值都具有值。

enter image description here

进行此次更新时

ALTER TABLE saber2012_uno ADD COLUMN punt_c_naturales int;
update saber2012_uno set punt_c_naturales = round((PUNT_BIOLOGIA::numeric + PUNT_FISICA::numeric + PUNT_QUIMICA::numeric) / 3,0); 
alter table saber2012_uno DROP COLUMN PUNT_BIOLOGIA; 
alter table saber2012_uno DROP COLUMN PUNT_FISICA;
alter table saber2012_uno DROP COLUMN PUNT_QUIMICA;     
一切都很好。但我不知道,因为以前的更新是不正确的。

1 个答案:

答案 0 :(得分:0)

也许你想要concat_ws()

update saber2012_1
    set estu_fecha_nacimiento = concat_ws('/', estu_nacimiento_dia, estu_nacimiento_mes, estu_nacimiento_anno); 

这将忽略NULL

的任何参数

但是,您的更新不会更改表中的任何其他列。当您在更新后进行查询时,结果可能只是以不同的顺序返回。