SQL的CASE表达式

CASE表达式是一个标量表达式,它基于条件逻辑来返回一个值。

  注意:case是一个表达式,而不是一条语句;也就是说,不能用它来控制活动的流程,也不能根据条件逻辑来做某些处理。相反,它只是根据条件逻辑来返回某个值。

CASE支持任何标量表达式(如select、where、having以及order by子句)、check约束。

CASE表达式有两种格式:简单表达式和搜索表达式。

-- Simple1

SELECT

  productid,

  productname,

  categoryid,  

  CASE categoryid    

    WHEN 1 THEN 'Beverages'    

    WHEN 2 THEN 'Condiments'    

    WHEN 3 THEN 'Confections'    

    WHEN 4 THEN 'Dairy Products'    

    WHEN 5 THEN 'Grains/Cereals'  

     WHEN 6 THEN 'Meat/Poultry'    

    WHEN 7 THEN 'Produce'    

    WHEN 8 THEN 'Seafood'    

    ELSE 'Unknown Category'  

  END AS categoryname

FROM Production.Products;

--这个是使用case表达式的一个简单例子。

-- Simple2

SELECT

  orderid,

  custid,

  val,  

  CASE   

    WHEN val < 1000.00                                 THEN 'Less then 1000'    

    WHEN val BETWEEN 1000.00 AND 3000.00 THEN 'Between 1000 and 3000'    

    WHEN val > 3000.00                                 THEN 'More than 3000'    

    ELSE 'Unknown' 

  END AS valuecategory

FROM Sales.OrderValues;

--这个是使用case搜索表达式的例子

原文地址:https://www.cnblogs.com/micronm/p/1997346.html