case to_char(substr(p.userid, 0, 3))
when '151' then '移动'
when '150'then '移动'
when '152'then '移动'
when '157'then '移动'
when '158'then '移动'
when '159'then '移动'
when '134'then '移动'
when '135'then '移动'
when '136'then '移动'
when '137'then '移动'
when '138'then '移动'
when '139'then '移动'
when '187'then '移动'
when '188'then '移动'
when '147'then '移动'
when '182'then '移动'
when '183'then '移动'
else '联通' end as mobileType
如果我们是使用的Oracle数据库,那么我们就没必要写复杂的case when语句了,Oracle的decode函数可以帮我们实现同样的功能。decode的语法如下:
其表示如果value的值为“if-1”则返回“then-1”,如果值为“if-n”则返回“then-n”,如果value的值不在给定的if值里面则将返回默认值defaultValue。所以使用decode时,上面的逻辑可以简单的转化为如下这样:
很明显,下面的写法比上面的写法要简单很多。
感觉没什么好简化的,你用函数封装起来把
再建张表,把对应关系写进去,通过联查获取