先看看表中的内容
select name,pass from t1;
![Oracle case when 根据结果改变查询出来的值[图片]](/img/tech-article-img/img_1488964235_64418.gif)
select name,decode(pass,'pass111','密码1','pass222','密码2','','密码为空') from t1;
![Oracle case when 根据结果改变查询出来的值[图片]](/img/tech-article-img/img_1488964235_976666.gif)
注意:decode函数中如果你没列出可能的情况,他就默认为空
3.select name,nvl(pass,'密码为空') from t1;
![Oracle case when 根据结果改变查询出来的值[图片]](/img/tech-article-img/img_1488964235_330199.gif)
nvl函数只对查询为空的情况赋值
select name,
case pass
when 'pass111'
then 'mima-111'
when 'pass222'
then 'mima-222'
else 'mima-null'
end
from t1;
![Oracle case when 根据结果改变查询出来的值[图片]](/img/tech-article-img/img_1488964236_489068.gif)
case when else end和JAVA语法很相似,该是什么就是什么,最好理解