2016-04-18 5 views
0

gibt es eine Möglichkeit, OR mit CASE WHEN zu verwenden, wie dies?CASE WANN mit OR

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

Eine Konstante im Fall Teil ('case‚brasil'') ​​macht keinen Sinn und ist nicht gültig an erster Stelle. Wenn es gültiges SQL ist, würde es keinen Sinn ergeben, da Sie das durch ein einfaches 'select 'ok' ersetzen können. –

Antwort

2

Ja, Sie denken richtig darüber nach. Sie können sich mit Ihrem select..case Anweisung OR oder:

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; 

Beispiel: http://sqlfiddle.com/#!15/c1cef/2

+0

Beachten Sie, dass Sie in diesem Fall nicht die vereinfachte Version der 'CASE'-Anweisung mit' CASE WHEN ... ' –

+0

verwenden. Ich habe die Beschreibung von PL/pgSQL entfernt, da dies für das OP irreführend sein kann. Danke, dass Sie es zur Kenntnis genommen haben. – zedfoxus

+0

Sie können den Ausdruck 'when' verkürzen, indem Sie' in': 'case wenn land in ('brasil', 'chile') verwenden, dann ...' –