是否可以检查值是否在单个Oracle解码函数的项列表中?

Kor*_*urk 1 oracle decode

我想知道如果我可以将值与解码函数中的项列表进行比较.基本上我想知道如果可以将解码语句的' search '值作为列表.例如,

decode(task_id, (1,2,3), 3 * task_time) 
Run Code Online (Sandbox Code Playgroud)

这段代码不会编译.这是这种情况的唯一选择(不使用case-when)还是有其他方法可以做到这一点?

decode(task_id, 1, 3 * task_time,
                2, 3 * task_time,
                3, 3 * task_time)
Run Code Online (Sandbox Code Playgroud)

我使用的是Oracle 10gR2.任何帮助深表感谢.

Cod*_*odo 6

如果单个值列表足够,您可以将其转换为CASEIN子句:

case when task_id in (1, 2, 3) then 3 * task_time else null end
Run Code Online (Sandbox Code Playgroud)