如果值不是NULL,则为1,否则为NULL(Oracle)



我正在创建一个新表,并继承上一个表中的一个字段。如果值不为null,我需要将值设置为1,否则将其保留为null。

这可以在没有更新语句的情况下实现吗?我知道在MSSQL中可以使用ISNULL函数,但Oracle呢?

CASE可以做到这一点。例如:

create table new_table as
select case when that_column is null then null else 1 end as that_column,
other_column
from the_original_table

Oracle提供nvl2()功能:

nvl2(col, 1, null)

但是,如果要更改值,则需要使用update或以某种方式修改数据