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. 23、Interpreter 解释器模式

    1.Interpreter 解释器模式 解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它用于描述如何使用面向对象语言构成一个简单的语言解释器.在某些情况下,为了更好地描述某一些特定类型的问 ...

  2. Python 切分数组,将一个数组均匀切分成多个数组

    Python 切分数组 将一个数组,均分为多个数组 代码 # -*- coding:utf-8 -*- # py3 def list_split(items, n): return [items[i: ...

  3. SpringBoot常用配置,引入外部配置文件信息,热加载

    SpringBoot的配置文件格式 yml规范 SpringBoot的配置文件支持properties和yml,甚至还支持json. 更推荐使用yml文件格式: yml文件,会根据换行和缩进帮助咱们管 ...

  4. 2020-07-05:tcp和udp的区别和应用场景。如何实现断点续传?

    福哥答案2020-07-05: 区别:1.可靠性:tcp可靠.udp不可靠.2.连接性:tcp面向连接.udp无连接.3.报文:tcp字节流.udp面向报文.4.传输效率:tcp低.udp高.5.多点 ...

  5. Vue watch对象属性并触发多个事件

    在vue中监控一个对象的属性变化,并且触发监听事件 watch: { 'user': [ { handler: (nweVal, oldVal) => { console.info('in 1 ...

  6. RoBERTa:一个调到最优参的BERT

    RoBERTa: A Robustly Optimized BERT Pretraining Approach. Yinhan Liu, Myle Ott, Naman Goyal, et al. 2 ...

  7. Java引用类型之软引用(2)

    下面接着上一篇介绍第2阶段和第3阶段的处理逻辑. 2.process_phase2() 第2个阶段移除所有的referent还存活的Reference,也就是从refs_list中移除Referenc ...

  8. 拼接html不显示layui进度条解决方法

    最新有个新需求,要异步拼接html并渲染数据,并且我这边是用layui的flow.load(流加载)渲染多个进度条.按官网给出的 element.progress('demo', n+'%'); 就是 ...

  9. Jmeter 常用函数(22)- 详解 __intSum

    如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.htm 作用 计算两个或多个整数值的和 语法格式 ${ ...

  10. sge的简单的应用

    1.sge提交脚本qsub 1.qsub work.sh work.sh 不能以数字开头 2.qsub work.sh  默认工作路径为/home/username 3.qsub -cwd work. ...