4

我在表 MYTABLE(ID、NUM、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'

我想出了以下查询:

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

不幸的是,这不起作用。

4

3 回答 3

5

这有效(SQLFiddle 演示):

SELECT id, num,
    CASE WHEN names IN ('JACK', 'BRUCE') AND num=0
    THEN 1 ELSE 0 END AS mynames
FROM mytable
于 2013-02-08T10:10:40.173 回答
3
select  case
        when exists
        (
        select  *
        from    YourTable
        where   name in ('JACK', 'BRUCE')
                and NUM = 0
        )
        then 1
        else 0
        end
from    dual

SQL Fiddle 上的实时示例。

于 2013-02-08T10:09:04.267 回答
1
select case when NAMES in ('JACK','BRUCE') AND NUM = 0
            then 1
            else 0
       end
from your_table
于 2013-02-08T10:12:50.613 回答