使用 OR 时的情况

Hel*_*ira 4 sql postgresql case-when

有没有办法将 OR 与 CASE WHEN 一起使用,就像这样?

SELECT
    case 'brasil'   
    when 'chile' OR 'brasil' THEN   
                        'ok'
    when 'argentina' then
        'ok2'
    when 'venezuela' THEN
        'ok3'
    ELSE
        'chaves'
end;
Run Code Online (Sandbox Code Playgroud)

zed*_*xus 6

是的,你的想法是正确的。您可以将 OR 或 IN 与 select..case 语句一起使用:

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;
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,在这种情况下,您没有使用带有“CASE <表达式> WHEN...”的简化版本的“CASE”语句。 (2认同)