将两列插入/合并为一个 - Concat

时间:2017-08-25 17:40:32

标签: sql oracle merge insert

能够让我的语法与这个论坛上的很多帖子非常接近(那是你的),但不是所有的。

我正在尝试通过在表中组合具有相同数据类型的两列来创建人工主键/代理键。我专门创建了第3列来保存这个组合值。

我的语法是

INSERT INTO TABLE A ( ARTPRIMKEY )
    SELECT (COLUMN1 ||'-'|| COLUMN2) 
    FROM TABLE A;

但是,不是以正确的顺序填充新列,而是插入新行,所有这些行都使用NULLS有效地将行数加倍但不执行我想要的操作。

我是否应该考虑进行合并(虽然我不确定我的匹配条件在哪里)?

由于

1 个答案:

答案 0 :(得分:1)

我怀疑你想要update

update a
    set artprimkey = (COLUMN1 ||'-'|| COLUMN2) ;

在更新版本的Oracle中,您可以将密钥生成为计算列,因此您实际上不必将值存储在表中。