MAPREDUCE服务 MRS-条件表达式:CASE

时间:2024-04-10 09:06:17

CASE

标准的SQL CASE表达式有两种模式。

  • “简单模式”从左向右查找表达式的每个value,直到找出相等的expression:

    CASE expression

    WHEN value THEN result

    [ WHEN ... ]

    [ ELSE result ]

    END

    返回匹配value的result。如果没有匹配到任何值,则返回ELSE子句的result;如果没有ELSE子句,则返回空。示例:
    select a,
    case a
     when 1 then 'one'
     when 2 then 'two'
     else 'many' end from
     (values (1),(2),(3),(4)) as t(a);
     a | _col1 
    ---|-------
     1 | one   
     2 | two   
     3 | many  
     4 | many  
    (4 rows)
  • “查找模式”从左向右判断每个condition的布尔值,直到判断为真,返回匹配result:

    CASE

    WHEN condition THEN result

    [ WHEN ... ]

    [ ELSE result ] END

    如果判断条件都不成立,则返回ELSE子句的result;如果没有ELSE子句,则返回空。示例:
    select a,b,
    case
    when a=1 then 'one'
    when b=2 then 'tow'
    else 'many' end from (values (1,2),(3,4),(1,3),(4,2)) as t(a,b);
     a | b | _col2 
    ---|---|-------
     1 | 2 | one   
     3 | 4 | many  
     1 | 3 | one   
     4 | 2 | tow   
    (4 rows)
support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2499100.html