今日hql case when 和 replace
在查数据过程中,position_cn 有为空的情况,仔细查过后发现这个空 可能是null,可能是空格,这就体现了数据的复杂性,在实际处理的时候要注意看数据到底有多少种情况。
select hash_cerno,pripid,
case
when position_cn is null then ‘“任职”’ – 如果为null就默认成“任职”
when position_cn=’ ’ then ‘“任职”’ – 如果为空格就默认成
else concat(’"’,position_cn,’"’)
end
as position_cn
from collection_bk.e_pri_person where hash_cerno is not null
第二个问题是 数据中有“被股东,” “被股东,” 有中文标点,有英文标点。
统一清理一下 连用3个replace
select replace(replace(replace(name,’“’,’’),’”’,’’),’"’,’’) as name,hash_cerno,‘Person’ as label from collection_bk.e_pri_person where name like ‘%被股东%’