Plsql 两个值之间的条件选择

Plsql 两个值之间的条件选择,plsql,conditional-statements,conditional-operator,Plsql,Conditional Statements,Conditional Operator,我想知道PL/SQL中的值之间是否有条件选择,因为在基于C的语言中有以下内容:[condition]?[value1]:[value2] 我想在update语句中使用它: UPDATE [table] SET [field] = [condition] ? [value1] : [value2] WHERE [where clause]; 我已经考虑过解码,但我想直接使用它,而不是将其结果存储在变量中,然后在update语句中使用它。您可以尝试使用CASE语句 UPDATE [table] S

我想知道PL/SQL中的值之间是否有条件选择,因为在基于C的语言中有以下内容:
[condition]?[value1]:[value2]

我想在update语句中使用它:

UPDATE [table] SET [field] = [condition] ? [value1] : [value2] WHERE [where clause];

我已经考虑过
解码
,但我想直接使用它,而不是将其结果存储在变量中,然后在update语句中使用它。

您可以尝试使用
CASE
语句

UPDATE [table]
SET [field] =
  CASE
    WHEN field2 = 'Y'
      THEN [value1]
    WHEN field2 = 'N'
      THEN [value2]
    ELSE 
  END;

如果是一个简单的条件,也可以使用DECODE:UPDATE[table]SET[field]=DECODE(field2[value],[value when field2=value],[value when field2 value]),WHERE[WHERE子句];