前言:
当我们因为前端老是改显示数据,而对应显示名称需要重新赋值,比如数据库表t1存了字段,ID,name其中ID是number类型的字段的。类似这样存储在数据表中。
一、case when 字段重新赋值
其中t1是枚举表,为了规范显示名称,需要将显示值固定显示,因此使用case when 重新赋值。
代码:
select ID, SHOWVALUE,case when ID=-8.56664992678128E18 then '工伤' when ID=-8.56628104882145E18 then '盐湖' when ID=-8.56575376810264E18 then '乌尔禾' end name from BI.Oa_Mjb
效果:
解析:
直接用来比较发现name字段无法带出来值。考虑是不是科学计数法的影响。那我们再试试。
二、第二种办法
代码:
select ID/1E18 ID, SHOWVALUE,case when ID/1E18=-8.56664992678128 then '工伤' when ID/1E18=-8.56628104882145 then '盐湖' when ID/1E18=-8.56575376810264 then '乌尔禾' end name from BI.Oa_Mjb
效果:
解析:
哦豁,发现还是不行哦,BBQ了呀。那我们是不是把它转换为字符串比较吧。
三、第三中办法
代码:
select to_char(ID) ID, SHOWVALUE,case when to_char(ID)='-8566649926781284405' then '工伤' when to_char(ID)='-8566281048821445944' then '盐湖' when to_char(ID)='-8565753768102639719' then '乌尔禾' end name from BI.Oa_Mjb
效果:
解析:
统一为char类型后就能带出了,因此我们在使用number类型的数据时,记得转换类型后再比较。