当前位置: 首页 > news >正文

10.Oracle中decode函数

【函数格式】:
        decode (

        expression,

        condition_01, result_01,

        condition_02, result_02,

        ......,

        condition_n, result_n,

        result_default)

【函数说明】:
若表达式expression值与condition_01值匹配,则返回result_01,若不匹配,则继续判断;
若表达式expression值与condition_02值匹配,则返回result_02,若不匹配,则继续判断;
以此类推,若表达式expression值condition_n值匹配,则返回result_n,若不匹配,则继续判断;
若表达式expression值与以上所有的condition都不匹配,则返回默认值result_default,若省略result_default参数,则返回null

示例

insert into T_STUDENT_GRADE (studentid, classid, engilshgrade, chinesegrade, mathgrade, gradelevel)
values ('stud01', 'clas01', 60, 70, 80, 'C');
insert into T_STUDENT_GRADE (studentid, classid, engilshgrade, chinesegrade, mathgrade, gradelevel)
values ('stud02', 'clas01', 75, 85, 95, 'B');
insert into T_STUDENT_GRADE (studentid, classid, engilshgrade, chinesegrade, mathgrade, gradelevel)
values ('stud03', 'clas01', 80, 90, 100, 'A');
insert into T_STUDENT_GRADE (studentid, classid, engilshgrade, chinesegrade, mathgrade, gradelevel)
values ('stud04', 'clas02', 55, 60, 65, 'D');
insert into T_STUDENT_GRADE (studentid, classid, engilshgrade, chinesegrade, mathgrade, gradelevel)
values ('stud05', 'clas02', 40, 50, 60, 'E');
insert into T_STUDENT_GRADE (studentid, classid, engilshgrade, chinesegrade, mathgrade, gradelevel)
values ('stud06', 'clas02', 100, 100, 100, 'S');

查询表中数据,查询结果如下所示

 1.将指定数据翻译或转换成其他形式

sql语句如下:

select GradeLevel,decode(GradeLevel,'S','完美','A','优秀','B','良好','C','较好','D','及格','E','不及格','其他') as gradeRemark from T_STUDENT_GRADE

返回结果如下图所示:

2.对指定数据按指定范围进行分段

sql语句如下:

select mathgrade,decode(mathgrade,100,'完美',decode(sign(mathgrade-90),1,'优秀',0,'优秀',-1,decode(sign(mathgrade-80),1,'良好',0,'良好',-1,decode(sign(mathgrade-70),1,'较好',0,'较好',-1,decode(sign(mathgrade-60),'1','及格',0,'及格',-1,'不及格'))))) as mathGradeRemark from T_STUDENT_GRADE

返回结果如下图所示:

 3.判断指定数据是否符合指定特征

sql语句如下:

//判断英语分数是否及格

select engilshgrade,decode(sign(engilshgrade-60),1,'大于60分',0,'等于60分','低于60分') passFlag from T_STUDENT_GRADE

返回结果如下图所示:

 

4.对数据按照指定要求进行排序

sql语句如下:

select * from T_STUDENT_GRADE order by decode(GradeLevel,'S',1,'A',2,'B',3,'C',4,'D',5,'E',6) asc

返回结果如下图所示:

 

http://www.lryc.cn/news/139687.html

相关文章:

  • Podman安装部署kafka和管理界面(快速跑起来)
  • Hbase文档--架构体系
  • stm32基于HAL库驱动外部SPI flash制作虚拟U盘
  • vue3-ts- element-plus新增组件-过滤
  • PostgreSQL SQL优化
  • debian12网络静态ip配置-OSSIM 安全漏洞扫描系统平台
  • 微软 Visual Studio 现已内置 Markdown 编辑器,可直接修改预览 .md 文件
  • 阿里云通义千问开源第二波!大规模视觉语言模型Qwen-VL上线魔搭社区
  • 在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)
  • 《vue3实战》在created生命周期中运用slice()方法结合element plus组件实现电影评价系统的分页
  • NO.04 MyBatis的各种查询功能
  • Spring循环依赖
  • docker以distribution和registry管理个人镜像仓库
  • 2023京东酒类市场数据分析(京东数据开放平台)
  • Android中的APK打包与安全
  • HTTPS单向认证与双向认证
  • (七) ElasticSearch 分词器
  • 足球- EDA的历史数据分析并可视化
  • 用正则处理Unicode 编码的文本
  • 【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
  • 生成式人工智能的潜在有害影响与未来之路(三)
  • 【2023钉钉杯复赛】A题 智能手机用户监测数据分析 Python代码分析
  • Django(5)-视图函数和模板渲染
  • Windows下 MySql通过拷贝data目录迁移数据库的方法
  • RabbitMQ---订阅模型-Fanout
  • nginx 中新增url请求参数
  • [系统] 电脑突然变卡 / 电脑突然** / 各种突发情况解决思路
  • 改进YOLO系列:8.添加SimAM注意力机制
  • Go与Rust的对比与分析
  • SpingMVC拦截器-异常处理的思路,用户体验不好的地方