在特定 SQL 查询中返回 1 或 0

min*_*als 4 sql oracle oracle-sqldeveloper

我的表 MYTABLE 有三列(ID、NUM、NAMES)。有一个列 NAMES。我需要检查 NAMES 列,看看名字是 JACK 还是 BRUCE,以及​​相应的 NUM 列 = 0。如果找到匹配项,则返回 1,否则返回 0。

ID NUM NAMES    
1  1   'TOM'
2  1   'MIKE'
3  0   'JACK'
4  1   'MICKY'
5  0   'BRUCE'
Run Code Online (Sandbox Code Playgroud)

我提出了以下查询:

select *
  case NAMES in ('JACK', 'BRUCE') and NUM=0 then 1 else 0 end as MYNAMES
from MYTABLE;
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用。

mvp*_*mvp 5

这有效(SQLFiddle 演示):

SELECT id, num,
    CASE WHEN names IN ('JACK', 'BRUCE') AND num=0
    THEN 1 ELSE 0 END AS mynames
FROM mytable
Run Code Online (Sandbox Code Playgroud)