【问题标题】:Inserting/Merging Two Columns Into One - Concat将两列插入/合并为一列 - Concat
【发布时间】:2018-02-03 19:50:30
【问题描述】:

能够使我的语法与该论坛上的许多帖子(您为此)非常接近,但并非一直如此。

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

我的语法是

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

但它不是以正确的顺序填充新列,而是插入新行,所有的 NULLS 都有效地将行数加倍,但没有做我想做的事情。

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

谢谢

【问题讨论】:

  • 为什么不在column1,column2上创建一个复合键/唯一索引?如果 col1、col2 的值改变了新的 artprimkey 值不会改变,也许你需要它?这个代理键的值是多少?

标签: sql oracle merge insert


【解决方案1】:

我怀疑你想要update

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

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

【讨论】:

  • 就是这样,非常感谢,感谢您的快速周转。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 2020-04-24
相关资源
最近更新 更多