更新查询if Oracle语句

Jak*_*Zak 11 sql oracle case conditional-statements sql-update

我需要在我的oracle表中更新新创建的列.为此,我需要使用行中的现有值来决定如何填充此列,我收到错误:

java.lang.NullPointerException -> See Debug Output for details
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

UPDATE
    SCHEMA_NAME.TABLE_NAME
SET
    OCO= IF CO= 'Y' AND COM='Y' THEN 
{
    'Y'
} ELSE
{
    'N'
}
END IF;
Run Code Online (Sandbox Code Playgroud)

关于语法的任何建议?

Lal*_*r B 18

您可以在子句中使用CASE表达式SET.

例如,

UPDATE table
SET schema.column =  CASE
                        WHEN CO= 'Y' AND COM='Y' THEN
                          'Y'
                        ELSE
                          'N'
                     END
Run Code Online (Sandbox Code Playgroud)