2016-04-18 8 views
0

ORを使用する方法がありますか?ケースの場合OR

SELECT 
    case 'brasil' 
    when 'chile' OR 'brasil' THEN 
         'ok' 
    when 'argentina' then 
     'ok2' 
    when 'venezuela' THEN 
     'ok3' 
    ELSE 
     'chaves' 
end; 
+2

一定の部分( 'ケース「brasil'')は意味を成さないし、ではないん最初は有効です。もしそれが有効なSQLであれば、それを単純な 'select 'ok'で置き換えることはできません。 –

答えて

2

はい、正しく考えています。あなたのselect..case文で使用ORまたはINことができます。

select 

    case 
    -- one way or writing OR 
    when country = 'brasil' or country = 'chile' then '....' 
    -- another way of writing OR 
    when country in ('china', 'japan') then '...' 
    else '..' 
    end 

from tablename; 

例:場合http://sqlfiddle.com/#!15/c1cef/2

+0

このケースでは、 'CASE WHEN ... 'で簡略化された' CASE'文を使用していないことに注意してください。 –

+0

PL/pgSQLの解説はOPに誤解を招く可能性があるため削除しました。それを注意してくれてありがとう。 – zedfoxus

+0

'in'を使って' when'式を短縮することができます: 'country in( 'brasil'、 'chile')then then ...' –

関連する問題