[Oracle/Sql] Decode与Case
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的更多相关文章
- oracle中DECODE与CASE的用法区别
对于CASE与DECODE其实并没有太多的区别,他们都是用来实现逻辑判断.Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能.而CASE是9i以后提供的语法,这个 ...
- Oracle sql语句中不支持boolean类型(decode&case)
[转自] http://blog.csdn.net/t0nsha/article/details/7828538 Oracle sql语句中不支持boolean类型(decode&case) ...
- Oracle decode和case的区别
case在SQL中有两种写法,先建立一个表create table salgrade(grade int, sal int);insert into salgrade values(1,1000);i ...
- Oracle SQL tuning 步骤
Oracle SQL tuning 步骤 SQL是的全称是Structured Query Language(结构化查询语言).SQL是一个在80年代中期被使用的工业标准数据库查询语言.不要把SQL语 ...
- ORACLE SQL单行函数(三)【weber出品必属精品】
16.L:代表本地货币符,这个和区域有关.这个时候我们想来显示一下人民币的符号:¥ $ vi .bash_profile ---写入如下内容: export NLS_LANG='SIMPLIFIED ...
- Oracle SQL优化[转]
Oracle SQL优化 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化 ...
- SQL Fundamentals || Oracle SQL语言
对于SQL语言,有两个组成部分: DML(data manipulation language) 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据 ...
- 《精通Oracle SQL(第2版) 》
<精通Oracle SQL(第2版) > 基本信息 作者: (美)Karen Morton Kerry Osborne Robyn Sands Riyaj Shamsud ...
- DB2、ORACLE SQL写法的主要区别
DB2.ORACLE SQL写法的主要区别 说实话,ORACLE把国内的程序员惯坏了,代码中的SQL充斥着大量ORACLE特性,几乎没人知道ANSI的标准SQL是什么样子,导致程序脱离了ORACL ...
随机推荐
- Eclipse工具的简单使用
前言 虽然编写Java用Idea比较好,但是对于正处于大学阶段的我,还是要和老师的步伐保持一致,但是,用的Idea这个工具多了,我就感觉对eclipse这个工具不是怎么熟悉了,甚至还有点对一些工具的使 ...
- JavaScript 严格模式(strict mode)
概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:'严格模式'.顾名思义,这种模式使得Javascript在更严格的条件下运行. 目的 1: 消除Javascript语法的一些不合 ...
- Es6扩展运算符--三点运算符(...)--展开语法(Spread syntax)
0.看文档呀 关于拓展运算符更详细的解释见 > MDN展开语法 关于剩余参数更详细的解释见 >MDN剩余参数 关于解构赋值更详细的解释见 >MDN解构赋值 直接看上面的文档更好 1. ...
- 配置 Eureka Server 集群
简介 为了使 Eureka Server 实现高可用,我们需要为它配置集群.这样当有一台 Eureka Server 有故障时,集群中的其他 Server 可以进行代替.Eureka 集群之中的 No ...
- equals&hashCode
经典规则:如果重写了equals,必须重写hashCode 为什么??? 这个规则考虑的应用场景:如果你的对象可能放入HashMap,HashSet,不重写会出问题 问题场景: new一个对象,重写了 ...
- (java)剑指offer二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从 上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. pu ...
- JAVA8—————StringJoiner类
JAVA8——StringJoiner类引言:在阅读项目代码是,突然看到了StringJoiner这个类的使用,感觉很有意思,对实际开发中也有用,实际上是运用了StringBuilder的一个拼接字符 ...
- JavaScript学习系列博客_23_JavaScript 构造函数
构造函数 - 构造函数是专门用来创建对象的函数 创建一个对象时,通过构造函数的方式来创建.这是通过Object()这个构造函数来创建的一个实例obj. var obj=new Object(); - ...
- JavaScript学习系列博客_15_栈内存、堆内存
栈内存 - JS中的变量都是保存到栈内存中的,- 基本数据类型的值直接在栈内存中存储,- 值与值之间是独立存在,修改一个变量不会影响其他的变量 堆内存 - 对象是保存到堆内存中的,每创建一个新的对象, ...
- hdfs-default.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="confi ...