CASE WHEN 的使用,看别人写好的,好像很简单,就一个CASE xxx WHEN express1 THEN result1 WHEN exp2 THEN result2 ,然后到自己用的时候就一堆问题发各种检查,下边列出来的踩得坑;
1. 注意这里的case 和 end是成对出现的,不能省略
2. 最后的那个else后边是没有关键字then的
3. 如果放在sql中使用,则要把case ...end 所有的部分都给用括号括起来,并且给一个名字 ,具体列子如下:
4. ELSE 的部分是可以省略的,如果省略掉之后,在其余when条件不满足时,返回null
CASE
WHEN express1 THEN res1
WHEN expression2 THEN res2
ELSE res3
END
SELECT id
,
( CASE WHEN service_id = 4 THEN '搭电' WHEN service_id = 5 THEN '拖车' ELSE'其他' END ) AS remark
FROM
car_service.service_reqs
WHERE
created_dt > '2021-05-01'
AND status = 'COMPLETED';