首先介绍一下case的简单语法:
写法一:
case 字段名
when 'value1' then 'replace1'
when 'value2' then 'replace2'
...
else 'other' end
写法二:
case
when 字段名 = 'value1' then 'replace1'
when 字段名 = 'value2' then 'replace2'
...
else 'other' end
现在拿我今天的一个小任务作为例子:
需求:目前有一张表,三个字段,分别是机构编码(jgbm),机构名称(jgmc),机构人口(czrk)。里面存了某市机构的所有卫生单位,现在需要把所有机构按照机构等级排列成树结构并列出他的人口数。下面给我我的代码:
select case when t.jgbm in (select m.jgbm
from xt_rkhz m
where m.jgbm like 'A1401__000000') then t.jbmc else '' end,
case when t.jgbm in (select m.jgbm
from xt_rkhz m
where m.jgbm like 'A1401_____000' and m.jgbm not like 'A1401__000000') then t.jbmc else '' end,
case when t.jgbm in (select m.jgbm
from xt_rkhz m
where m.jgbm like 'A1401_____000') then '' else t.jbmc end,
t.*
from xt_rkhz t order by t.jgbm