case表达式

#####################
##CASE表达式
#####################

#1.搜索case表达式
use xscj;
-- case when <求值表达式> then <表达式>
--      when <求值表达式> then <表达式>
--      when <求值表达式> then <表达式>
--      ...
--     else <表达式>
-- END
##case表达式从最初的when开始,如果为真执行then,为假就进行下一步 
-- case最后返回 
-- ||为字符串拼接

##这句没有达到预期效果 可能 ||在MySQL不支持
SELECT product_name,       
     CASE WHEN product_type = '衣服'            
          THEN 'A :' || product_type            
          WHEN product_type = '办公用品'            
          THEN 'B:' || product_type            
		  WHEN product_type = '厨房用具'            
          THEN 'C :' || product_type            
          ELSE NULL       
	 END AS abc_product_type  
FROM Product;
SELECT product_name,       
     CASE WHEN product_type = '衣服'            
          THEN 'A'           
          WHEN product_type = '办公用品'            
          THEN 'B'             
		  WHEN product_type = '厨房用具'            
          THEN 'C'             
          ELSE NULL       
	 END AS abc_product_type  
FROM Product;

     when <求值表达式> then <表达式>
     when <求值表达式> then <表达式>
       ...
	 ELSE <表达式>
end

##进行行列转换
select product_type,
       sum(sale_price) as sum_price from product
       group by product_type;
--  下面进行行列转换  
select sum(case when product_type = '衣服'
                then sale_price else 0 end)as sum_price_clothes,
	   sum(case when product_type = '厨房用具'
                then sale_price else 0 end)as sum_price_kitchen,
	   sum(case when product_type = '办公用品'
                then sale_price else 0 end)as sum_price_office
from product;

#1.简单case表达式
-- case <表达式>
-- 	    when <表达式> then <表达式>
--      when <表达式> then <表达式>
--      when <表达式> then <表达式>
--      ...
--     else <表达式>
-- END
SELECT product_name,       
     CASE WHEN product_type = '衣服'            
          THEN 'A'           
          WHEN product_type = '办公用品'            
          THEN 'B'             
		  WHEN product_type = '厨房用具'            
          THEN 'C'             
          ELSE NULL       
	 END AS abc_product_type  
FROM Product;
#########对比 
SELECT product_name,
     CASE product_type
          WHEN  '衣服'            
          THEN 'A'           
          WHEN '办公用品'            
          THEN 'B'             
		  WHEN  '厨房用具'            
          THEN 'C'             
          ELSE NULL       
	 END AS abc_product_type  
FROM Product;

猜你喜欢

转载自blog.csdn.net/kylin_learn/article/details/81368199