Oracle decode函数学习

基本语法

语法一

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

解释

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

语法二

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

解释

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

使用场景

比较大小

1
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 列,要求按照语文,数学,英语的顺序排列

```sql
select * from table_subject order by decode(subject_name, ‘语文’, 1,’数学’, 2, ‘英语’, 3)

查看评论