Oracle decode函数学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012414590/article/details/71274674

基本语法

语法一

decode(条件,值1,返回值1,值2,返回值2,...,值n,返回值n)

解释

如果条件=值1,则结果为返回值1,
如果条件=值2,则结果为返回值2,
。。。
如果条件=值n,则结果为返回值n

语法二

decode(字段或字段的运算,值1,值2,值3)

解释

当字段或字段运算的值等于值1时,函数返回值为值2,否则为值3
这里的值1,值2,值3也可以是表达式

使用场景

比较大小

select decode(sign(变量1-变量2), -1, 变量1, 变量2) from dual;

注意:sign()函数根据某个值是0,正数,负数,分别返回0,1,-1

SQL语句中的使用

decode函数与一系列嵌套的if-then-elsif语句相似

order by 对字符串进行特定的排序

例如:
表table_subject中有subject_name列,要求按照语文,数学,英语的顺序排列

select * from table_subject order by decode(subject_name,'语文',1,'数学',2,'英语',3)

猜你喜欢

转载自blog.csdn.net/u012414590/article/details/71274674