#####################
##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;
case表达式
猜你喜欢
转载自blog.csdn.net/kylin_learn/article/details/81368199
今日推荐
周排行