decode函数格式如下:
decode(expression,condition1,result1,condition2,result2...default)
等效于:
if(expression == condition1):
return result1;
else if(expression == condition2):
return result2;
......
else:
return default;
常用场景:
比如,数据库中用数值表达状态,展示的时候需要将状态正常显示:
decode(STATUS,'1','状态1','2','状态2','3','状态3')
再复杂一点,需要根据数值进行分段展示。比如成绩大于等于90为优秀,大于等于80为良好,其他情况为普通:
//sign()函数的作用是,判断参数的值大于0则返回1,等于0则返回0,小于0则返回-1
decode(sign(score-90),1,'优秀',0,'优秀',-1,
decode(sign(score-80),1,'良好',0,'良好',-1,'普通'))