之前我们学过的,如果我们需要有多个表达式怎么办?,这个时候我们就要删掉if,改为case
use sql_store;
select
order_id,
order_date,
if(year(order_date)=year(now()),
'active',
'archived')
from orders
1,举例:
use sql_store;
select
order_id,
case
when year(order_date)=year(now()) then'active'
when year(order_date)=year(now()) -1 then'last year'
when year(order_date)<year(now()) -1 then'archived'
else'future'
end as category
from orders
原表:现在是2023年,所以都是archived
2,练习,根据下表写查询
答案:
use sql_store;
select
concat(first_name,' ',last_name)as customers,
points,
case
when points<1000 then'Bronze'
when points between 1000 and 3000 then'Silver'
when points>3000 then'Gold'
end as category
from customers
或者