数据库ORACLE中函数decode的用法
2016-05-25 10:55
477 查看
Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似
decode()函数简介:
使用方法:
Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
From talbename
Where …
其中columnname为要选择的table中所定义的列名,
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
列:
有学生成绩表student,现在要用decode函数实现以下几个功能:成绩>85,显示优秀;>70显示良好;>60及格;否则是不及格。
假设student的编号为id,成绩为score,那么:
select id, decode(sign(score-85),1,'优秀',0,'优秀',-1,
decode(sign(score-70),1,'良好',0,'良好',-1,
decode(sign(score-60),1,'及格',0,'及格',-1,'不及格')))
from student;
decode()函数简介:
使用方法:
Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
From talbename
Where …
其中columnname为要选择的table中所定义的列名,
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
列:
有学生成绩表student,现在要用decode函数实现以下几个功能:成绩>85,显示优秀;>70显示良好;>60及格;否则是不及格。
假设student的编号为id,成绩为score,那么:
select id, decode(sign(score-85),1,'优秀',0,'优秀',-1,
decode(sign(score-70),1,'良好',0,'良好',-1,
decode(sign(score-60),1,'及格',0,'及格',-1,'不及格')))
from student;
相关文章推荐
- Oracle 如何创建和使用全文索引
- 《财富》访谈:Oracle为什么不会干掉MySQL
- oracle简历自增序列(转)
- Oracle RAC的机制与测试方法
- oracle查看当前用户权限
- ORACLE - 安装前 系统参数配置
- ORACLE - 安装前 环境变量配置
- ORACLE-安装前RPM检查
- oracle表空间操作
- oracle函数trunc的使用
- Oracle中ltrim的用法
- oracle锁表后,系统能否自动解锁?
- ORACLE中的varchar2()与nvarchar2()的讲解
- Oracle物化视图创建全过程(转)
- Jdeveloper不能连接oracleXE
- Oracle读取和修改数据块的过程 专家
- ORACLE 里面的LIKE 语句的详细作用格式什么呀
- Oracle 如何创建和使用全文索引
- Oracle 查询死锁并解锁的终极处理方法
- Oracle 使用TOAD实现导入导出Excel数据