将数据从列复制到另一个列并处理空案例

时间:2014-02-13 14:31:24

标签: sql oracle

我将一些数据从一列传输到另一列并且我不确定如何在第一列可空并且第二列不可用时覆盖该情况。

COLUMN1有一些值或null,我想在COLUMN2中复制这些值,并删除空值。如何以最佳方式覆盖空案例?也就是说,如果我在COLUMN1中有空,我想用某个值标记它,例如在COLUMN2中为0。我希望COLUMN2具有非空约束。剩下的值将被复制。

基本上这是以一种可以使用null的方式:

INSERT INTO table (COLUMN2) SELECT COLUMN1 FROM table;

感谢任何想法!

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您需要update,而不是insert

update table
    set column2 = coalesce(column1, 0);

编辑:

如果您的insert声明确实是您想要做的,那么您可以将逻辑放在那里:

INSERT INTO table(COLUMN2)
    SELECT coalesce(COLUMN1, 0)
    FROM table;