关于mysql case when 的难题

2025-03-26 17:33:23
推荐回答(2个)
回答1:

else不能直接级联,只能级联case,应该这么写
1。如果各个when条件互斥的话
select
pre.enabled,pre.link,ad.link as adlink,
CASE
WHEN pre.link=='' THEN 0
WHEN pre.link!=ad.link THEN 1
WHEN pre.enabled==0 THEN 2
ELSE 3
END CASE
from
_ad_pre as pre
left join
_ad as ad
on ad.adid=pre.adid
2.如果各个条件之间有包含关系
select
pre.enabled,pre.link,ad.link as adlink,
CASE
WHEN pre.link=='' THEN 0
ELSE
CASE
WHEN pre.link!=ad.link THEN 1
ELSE
CASE
WHEN pre.enabled==0 THEN 2
ELSE 3
END CASE
END CASE
END CASE
from
_ad_pre as pre
left join
_ad as ad
on ad.adid=pre.adid

回答2:

年代,曾经有过一个神话,那就是吉卜力首部剧场动画《风之谷》中一个叫娜乌西卡的女孩,作为那部里程碑式作品的女主角,娜乌西卡集坚强,高尚,美丽,纯真于一身,有人甚至怀疑她在动画史上的地位永远不会被动摇,直到10年之后一部名叫《新世纪福音战士》的动画出现,把另外一位女孩领进了人们的视野--她就是凌波丽. 这个有着蓝色