我可以在UPDATE语句中使用DECODE吗?

Avi*_*Avi 4 plsql

我可以在SET左侧的UPDATE语句中使用DECODE吗?

UPDATE temp SET DECODE(update_var,1,col1,2,col2)= update_value;

由于忽略了这个符号,这给了我错误.

Mar*_*ytz 14

这个怎么样?如果更新标志设置为1,则更新col1,如果设置为2,则更新col2.

UPDATE temp
   SET col1 = DECODE(update_var, 1, update_value, col1),
       col2 = DECODE(update_var, 2, update_value, col2)
Run Code Online (Sandbox Code Playgroud)

此外,作为奖励,它将处理更新变量设置为一个或两个以外的可能情况!