SQL Case表达式语法怎么写

解决方案

完整的语法取决于我们使用的数据库引擎:

对于SQL Server:

CASE case-expression
    WHEN when-expression-1 THEN value-1
  [ WHEN when-expression-n THEN value-n ... ]
  [ ELSE else-value ]
END

或者:

CASE
    WHEN boolean-when-expression-1 THEN value-1
  [ WHEN boolean-when-expression-n THEN value-n ... ]
  [ ELSE else-value ]
END

在PostgreSQL中:

SELECT a,
   CASE WHEN a=1 THEN 'one'
        WHEN a=2 THEN 'two'
        ELSE 'other'
   END
FROM test;

或者

SELECT a,
   CASE a WHEN 1 THEN 'one'
          WHEN 2 THEN 'two'
          ELSE 'other'
   END
FROM test;

Oracle写法

CASE { simple_case_expression | searched_case_expression }
     [ else_clause ]
     END

simple_case_expression 示例

expr { WHEN comparison_expr THEN return_expr }...

searched_case_expression 示例

{ WHEN condition THEN return_expr }...

else_clause 示例

ELSE else_expr
日期:2020-03-24 21:58:06 来源:oir作者:oir