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. DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048

    DB2 执行SQL报错: DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048 你建的db2数据库没有建足够大的临时表空间,新建一个足够大的临时表空间 1.创建数据 ...

  2. win10 安装msys2 和 ruby

    1.选择自己的版本 https://rubyinstaller.org/downloads/ Ruby+Devkit 2.5.1-2 (x64) Ruby+Devkit 2.5.1-2 (x86) 2 ...

  3. flask_restful实现文件下载功能

    环境:前后端完全分离,后端flask_restful,前端vue from flask_restful import reqparse, Resource from flask import send ...

  4. HTML实例-01-轮播图

     body部分 <div class="outer"> <ul class="img-list"> <li><a hr ...

  5. Linux学习笔记 一 第一章 Linux 系统简介

    Linux简介 一.UNIX与Linux发展史

  6. hdfs学习(二)

    一.HDFS文件限额配置 在多人共用HDFS的环境下,配置设置非常重要.特别是在Hadoop处理大量资料的环境,如果没有配额管理,很容易把所有的空间用完造成别人无法存取.Hdfs的配额设定是针对目录而 ...

  7. offer收割机也有方法论

    秋招的战火就像这夏天的温度一样炙热,陆陆续续很多学弟学妹问我秋招的注意事项,作为温暖型大叔的我此刻必须出场了. 看仔细了,接下来龙叔就把这offer收割机的秘密都告诉你们. 如果你还没点关注的话,记得 ...

  8. ArcGIS Pro Add-In插件开发[ArcGIS Pro SDK for .NET]

    本文基于 Windows7 + VS2019 + .NET Framework 4.8 + ArcGIS Pro 2.5 开发和撰写. 目录 开发环境配置 获取ArcGIS Pro 安装VS2019 ...

  9. Cobalt Strike简单使用

    ---恢复内容开始--- 一.介绍: 后渗透测试工具,基于Java开发,适用于团队间协同作战,简称“CS”. CS分为客户端和服务端,一般情况下我们称服务端为团队服务器,该工具具有社工功能(社会工程学 ...

  10. 为什么LinkedList不建议使用for循环遍历,而使用iterator方式进行遍历,但ArrayList建议使用for循环进行遍历呢?

    如果使用for循环方式遍历链表,由于链表中元素是通过指针连接彼此的,不存在索引的概念,如果使用for循环方式遍历LinkedList,依次传入索引值,则就相当于每次都要将链表撸一遍. 如:在下面的这个 ...