with tmp as
(select * from person p left
join dic d on p.sex = d.key and d.type = 'sex'
union all
select * from person p
left join dic d on p.sex = d.key and d.type = 'job')
select
max( case when tmp.job = tmp.key and tmp.type = 'job'
then tmp.val else 0 end ) as job,
max( case when tmp.sex = tmp.key and tmp.type = 'sex'
then tmp.val else 0 end ) as sex,
id
from tmp group by id;
版权声明:本文为epitomizelu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。