Oracle - Where子句中的Case

use*_*755 0 sql oracle case where

我正在尝试在Oracle数据库中执行查询.该查询在where子句中有case构造.

where
    sale.op = 2 and
        case when (:stat = -11) then (sale.type_id = 27 or sale.type_id = 28 or sale.type_id = 29)
    else
    (sale.type_id = 27)
    end
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

ORA-00907:缺少右括号.

在Derby SQL中这是有效的.有人可以帮帮我吗?谢谢.

a_h*_*ame 5

where sale.op = 2 
and (     (:stat = -11 and sale.type_id in (27, 28, 29))
      or  (:stat <> -11 and sale.type_id = 27)
    )
Run Code Online (Sandbox Code Playgroud)