Decode和case都可以实现SQL中的条件结构,下面为用法示例:

select id,name,score,decode(floor(score/20),5,'A',4,'B',3,'C',2,'D','E') as grade from tb_score01 order by grade

运行情况:

SQL> select id,name,score,decode(floor(score/20),5,'A',4,'B',3,'C',2,'D','E') as grade from tb_score01 order by grade;

        ID NAME                      SCORE G
---------- -------------------- ---------- -
3 VJJYYVKXKJKZADERKU 84 B
11 AGUNCTGZFGDJJGLQTQMY 81 B
2 YUVFJNTQAYJBTDYAQNIB 50 D
10 XDJFPNUIP 53 D
9 ZFJKTW 59 D
1 KBKVMELHCIFEWFI 42 D
5 DUEEXRBJJI 5 E
8 TEEGBSRVHASOTBHN 30 E
7 UAMTSMFDE 2 E
13 YUNHCQSBVPQ 27 E
14 VIDHHKOAWOTQXRBSI 14 E ID NAME SCORE G
---------- -------------------- ---------- -
4 KBJWREHVF 8 E
15 RMWEROFCFEVVFRU 14 E
6 QLLJNGXVFR 2 E
12 WNMWJP 30 E 已选择15行。

Case示例:

select id,name,score,case floor(score/20) when 5 then 'A' when 4 then 'B' when 3 then 'C' when 2 then 'D' else 'E' end as grade from tb_score01 order by grade 

执行情况:

SQL> select id,name,score,case floor(score/20) when 5 then 'A' when 4 then 'B' when 3 then 'C' when 2 then 'D' else 'E' end as grade from tb_score01 order by grade ;

        ID NAME                      SCORE G
---------- -------------------- ---------- -
3 VJJYYVKXKJKZADERKU 84 B
11 AGUNCTGZFGDJJGLQTQMY 81 B
2 YUVFJNTQAYJBTDYAQNIB 50 D
10 XDJFPNUIP 53 D
9 ZFJKTW 59 D
1 KBKVMELHCIFEWFI 42 D
5 DUEEXRBJJI 5 E
8 TEEGBSRVHASOTBHN 30 E
7 UAMTSMFDE 2 E
13 YUNHCQSBVPQ 27 E
14 VIDHHKOAWOTQXRBSI 14 E ID NAME SCORE G
---------- -------------------- ---------- -
4 KBJWREHVF 8 E
15 RMWEROFCFEVVFRU 14 E
6 QLLJNGXVFR 2 E
12 WNMWJP 30 E 已选择15行。

表及充值语句如下:

CREATE TABLE tb_score01
(
id NUMBER not null primary key,
name varchar2(20),
score int
) Insert into tb_score01
select rownum,dbms_random.string('*',dbms_random.value(6,20)),dbms_random.value(0,100) from dual
connect by level<=15
order by dbms_random.random

2020-01-27

[Oracle/Sql] Decode与Case的更多相关文章

  1. oracle中DECODE与CASE的用法区别

    对于CASE与DECODE其实并没有太多的区别,他们都是用来实现逻辑判断.Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能.而CASE是9i以后提供的语法,这个 ...

  2. Oracle sql语句中不支持boolean类型(decode&case)

    [转自] http://blog.csdn.net/t0nsha/article/details/7828538 Oracle sql语句中不支持boolean类型(decode&case) ...

  3. Oracle decode和case的区别

    case在SQL中有两种写法,先建立一个表create table salgrade(grade int, sal int);insert into salgrade values(1,1000);i ...

  4. Oracle SQL tuning 步骤

    Oracle SQL tuning 步骤 SQL是的全称是Structured Query Language(结构化查询语言).SQL是一个在80年代中期被使用的工业标准数据库查询语言.不要把SQL语 ...

  5. ORACLE SQL单行函数(三)【weber出品必属精品】

    16.L:代表本地货币符,这个和区域有关.这个时候我们想来显示一下人民币的符号:¥ $ vi .bash_profile ---写入如下内容: export NLS_LANG='SIMPLIFIED ...

  6. Oracle SQL优化[转]

    Oracle SQL优化 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化 ...

  7. SQL Fundamentals || Oracle SQL语言

    对于SQL语言,有两个组成部分: DML(data manipulation language) 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据 ...

  8. 《精通Oracle SQL(第2版) 》

    <精通Oracle SQL(第2版) > 基本信息 作者: (美)Karen Morton    Kerry Osborne    Robyn Sands    Riyaj Shamsud ...

  9. DB2、ORACLE SQL写法的主要区别

    DB2.ORACLE SQL写法的主要区别   说实话,ORACLE把国内的程序员惯坏了,代码中的SQL充斥着大量ORACLE特性,几乎没人知道ANSI的标准SQL是什么样子,导致程序脱离了ORACL ...

随机推荐

  1. java_字节流、字符流的使用方法

    字节流 字节输出流[OutputStream] java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地.它定义了字节输出流的基本共性功能方法. p ...

  2. 解决drf_yasg中的SwaggerAPI无法正确分组问题

    swagger是后台开发中很好用的交互式文档,Django原本的Django-Swagger已经停止维护了,现在一般用drf_yasg这个包来实现文档,它里面支持swagger和redoc两种,red ...

  3. Android小技巧总结——持续更新

    WebView实现 博客地址: https://blog.csdn.net/lowprofile_coding/article/details/77928614 获取网络权限 <uses-per ...

  4. Spring——IOC(控制反转)与DI(依赖注入)

    IOC与DI的理解及使用 控制反转IOC(Inversion of Control)是一种设计思想,DI(依赖注入)是实现IOC的一种方法.在没有IOC的程序中,我们使用面向对象编程,对象的创建于对象 ...

  5. Window C盘 占满原因之一

    最近一段时间,突然C盘 莫名奇妙的满了 ,也没有中毒. 最后查找是因为安装了SQL Reporting  的原因 C:\Program Files\Microsoft SQL Server Repor ...

  6. for语句——猜数字

    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib. ...

  7. 封装react antd的form表单组件

    form表单在我们日常的开发过程中被使用到的概率还是很大的,比如包含了登录.注册.修改个人信息.新增修改业务数据等的公司内部管理系统.而在使用时这些表单的样式如高度.上下边距.边框.圆角.阴影.高亮等 ...

  8. 根据字典内的键值修改另一个字典的value

    需求:根据传入字典的key1,将value1循环替换到已知字典内相同key的value def dispose_dict(input_parameter,fixed_parameter): for i ...

  9. Android Studio && GitHub 团队多人一起开发

    曾几何时,花了两天的时间搞了合并项目,搞得乱七八糟der,但最终还是被我搞定了,too 乱 to 做笔记.过了几个月,也就是前几天,抱着从头开始的决心,再次尝试,然鹅并没有结果.今天,再一次重新开始, ...

  10. C#/VB.NET 比较两个Word文档差异

    本文以C#和VB.NET代码为例,来介绍如何对比两个Word文档差异.程序中使用最新版的Spire.Doc for .NET 版本8.8.2.编辑代码前,先在VS程序中添加引用Spire.Doc.dl ...