Sql 将数据从一列复制到另一列并处理空情况

Sql 将数据从一列复制到另一列并处理空情况,sql,oracle,Sql,Oracle,我正在将一些数据从一列传输到另一列,我不知道如何处理第一列可为空而第二列不可为空的情况 COLUMN1有一些值或null,我想将这些值复制到COLUMN2中,并去掉null值。如何以最佳方式覆盖空案例?也就是说,如果我在第1列中有null,我想用一个特定的值来标记它,例如第2列中的0。我希望COLUMN2具有非null约束。其余的值将被复制 基本上是这样的,但在某种程度上也适用于null: INSERT INTO table (COLUMN2) SELECT COLUMN1 FROM table

我正在将一些数据从一列传输到另一列,我不知道如何处理第一列可为空而第二列不可为空的情况

COLUMN1有一些值或null,我想将这些值复制到COLUMN2中,并去掉null值。如何以最佳方式覆盖空案例?也就是说,如果我在第1列中有null,我想用一个特定的值来标记它,例如第2列中的0。我希望COLUMN2具有非null约束。其余的值将被复制

基本上是这样的,但在某种程度上也适用于null:

INSERT INTO table (COLUMN2) SELECT COLUMN1 FROM table;
任何想法都很感激


谢谢

我想您需要的是
更新
,而不是
插入

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

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

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

我不知道那个神奇的功能!很容易!谢谢=)