4

テーブル MYTABLE に 3 つの列 (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'

次のクエリを思いつきました。

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

SQLFiddleでの実例。

于 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 に答える