在写 sql的时候我们会经常使用到decode函数,今天我们来讲一些decode的基本用法吧。
表达式:decode(列名,值1,值11,值2,值22,值3,值33……,值X)
表达式的意思:
文字描述:如果列名对应的值等于值1,那么他的值就等于值11,如果列名对应的值是值2那么他的值就是值22,如果列名对应的值是值3那么他的值就是值33等等,条件都不满足,列名的值就是值X。
用java的语法来表达就是:
if(列名的值==值1){ 列名的值=值11 }
else if(列名的值==值2){ 列名的值=值22}
else if(列名的值==值3){ 列名的值=值33}
。。。。。。。
else{ 列名的值=值X}
其实在sql中还有一种方法表达的来表达if else的判断语句,那就是 case when语句,但是case when 有两种表方式.
用case when 来表达上面的语句:
表达方式一:
case 列名 when 值1 then 值11
when 值2 then 值22
when 值3 then 值33
。。。。。。。
else
值X
end
表达方式二:
case when 列名==值1 then 值11
when 列名==值2 then 值22
when 列名==值3 then 值33
。。。。。。。
else
值X
end
最后提一点一定要注意的是:
不管是case when 还是 decode 他们的值11,值22,值33 必须是同一种类型。
decode(列名,值1,varchar2,值2,varchar2,值3,varchar2……,varchar2)
decode(列名,值1,number,值2,number,值3,number……,number)
如果不一样那就会报错
无效数字
ps:如果对你们有帮助请点击下面的喜欢,谢谢