Sql 无效的运算符错误oracle

Sql 无效的运算符错误oracle,sql,oracle,Sql,Oracle,我的资料中有一个表格。它有两列period(varchar)和Center(varchar)。中心具有以下值L150 L180 L352,周期具有空值 我正在尝试运行此查询 select TIP.PERIOD from SCOTT.TIP where (1=1) and ( CASEWHEN TIP.CENTRO IN ('L150','L180','L358') THEN TIP.PERIOD = 'C'

我的资料中有一个表格。它有两列period(varchar)和Center(varchar)。中心具有以下值L150 L180 L352,周期具有空值

我正在尝试运行此查询

select TIP.PERIOD
  from SCOTT.TIP
 where (1=1)
       and (
         CASEWHEN TIP.CENTRO IN ('L150','L180','L358')
             THEN TIP.PERIOD = 'C'
             ELSE TIP.PERIOD = 'D'
              END)
但我得到了无效的关系运算符错误。原因可能是什么

谢谢

这是错误的

CASEWHEN 
换一下

CASE WHEN 



select TIP.PERIOD
   from SCOTT.TIP  where (1=1) and (
   TIP.PERIOD = CASE WHEN TIP.CENTRO IN ('L150','L180','L358')
   THEN TIP.PERIOD = 'C'
   ELSE TIP.PERIOD = 'D'
   end)

那么,tip.period是在查询过程中“定义”的空值吗

SELECT 
    CASE 
        WHEN TIP.CENTRO IN ('L150','L180','L358')
        THEN 'C'
        ELSE 'D'
    END as period
from scott.tip

要获得完整的Oracle语法,您需要以下内容:

select TIP.PERIOD
from SCOTT.TIP
where (1=1) and (
 TIP.PERIOD =
   CASE WHEN TIP.CENTRO IN ('L150','L180','L358') THEN 'C' ELSE 'D' END

谢谢你的回答。
select TIP.PERIOD
from SCOTT.TIP
where (1=1) and (
 TIP.PERIOD =
   CASE WHEN TIP.CENTRO IN ('L150','L180','L358') THEN 'C' ELSE 'D' END