一、什么是CASE表达式
CASE表达式是一种运算功能,意味着CASE表达式也是函数的一种。
它是SQL中数一数二的重要功能。必须好好学习掌握。
 
CASE表达式是在区分情况时使用的,这种情况的区分在编程中通常称为(条件)分支。
 
二、CASE表达式的语法
CASE表达式语法分为简单CASE表达式和搜索CASE表达式两种。搜索CASE表达式包含了简单CASE表达式的全部功能。

CASE 表达式会从对最初的 WHEN 子句中的“< 求值表达式 >”进行 求值开始执行。所谓 ,就是要调查该表达式的真值是什么。如果结果 为真(TRUE),那么就返回 THEN 中的表达式,CASE 表达式的执行到此为止。如果结果不为真,那么就跳转到下一条 WHEN 子句的求值之中。 如果直到最后的 WHEN 子句为止返回结果都不为真,那么就会返回 ELSE 中的表达式,执行终止。
从 CASE 表达式名称中的“表达式”我们也能看出来,上述这些整 体构成了一个表达式。并且由于表达式最终会返回一个值,因此 CASE 表 达式在 SQL 语句执行时,也会转化为一个值。
 
三、CASE表达式的使用方法
ELSE子句也可以省略不写,这时会被默认为ELSE NULL。
CASE表达式最后的END不能省略。
 
1、CASE表达式的书写位置
CASE表达式可以书写在任何位置。

对SELECT语句的结果进行编辑时,CASE表达式能够发挥较大作用。
 
五、简单CASE表达式

虽然看上去简化了书写,但是想要在WHERE子句中指定不同列时,简单CASE表达式就无能为力了。

第六章 函数、谓词、CASE表达式 6-3 CASE表达式的更多相关文章

  1. 《SQL 基础教程》第六章:函数、谓词、CASE 表达式

    函数是 SQL 中的一部分.在 SQL 中,除了普通的函数之外,还有特殊的函数(谓词和 CASE 表达式)用于各种情况. 函数 函数的种类有: 算术函数 字符串函数 日期函数 转换函数(用于转换数据类 ...

  2. 第六章 函数、谓词、CASE表达式 6-2 谓词

    一.什么是谓词 需要满足返回值为真值的函数.谓词的返回值全都是真值(TRUE/ FALSE/UNKNOWN) 如:LIKE/BETWEEN /IS NULL/IS NOT NULL/IN/EXISTS ...

  3. Python第六章-函数04-递归函数和拉姆达表达式

    五.递归函数 什么叫递归(recusive)? 你拿两个镜子互相面对着, 然后去看镜子, 会发现每个镜子中很多个镜子, 层层的嵌套, 无穷尽, 这就是一种递归! 从前有坐山, 山里有座庙, 庙里有个老 ...

  4. 第六章 函数、谓词、CASE表达式 6-1 各种各样的函数

    一.函数的种类 算术函数 字符串函数 日期函数 转换函数 聚合函数   二.算术函数 + - * /   1.ABS——绝对值 ABS(数值) 绝对值 absolute value ,不考虑数值的符号 ...

  5. 《Python 学习手册4th》 第十六章 函数基础

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  6. python3 第十六章 - 函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被 ...

  7. Python第六章-函数01-函数的概念和使用

    函数 为了便于程序的维护和更好的实现模块化,好的程序都会分解为很多函数. 可以这么说,对于任何的编程语言,函数都是一个非常重要的概念. python 不仅简化了函数的定义过程,而且还大量借鉴了其他函数 ...

  8. Python第六章-函数05-迭代器&生成器

    python作为一个既面向对象,又支持函数式编程的语言,函数的使用方面有很多特点. 比如:闭包,装饰器,迭代器等 函数的高级应用 容器:生活中常见的容器有哪些?袋子,盆子,水杯,书包,铅笔盒... 容 ...

  9. Python第六章-函数06-高阶函数

    函数的高级应用 二.高阶函数 高级函数, 英文叫 Higher-order Function. 那么什么是高阶函数呢? 在说明什么是=高阶函数之前, 我们需要对函数再做进一步的理解! 2.1 函数的本 ...

随机推荐

  1. Android_问卷调查

    这个是一个简单的问卷调查,对于我这样的初学者可能会绞尽脑汁想尽办法,去实现一个看起来特别简单的功能,我这个是用Intent传参的办法,来实现将前边的调查来进行统计,并记录,之后将这些信息显示到最后一个 ...

  2. Picasso处理同一url,但资源变了的情况

    问题:上传头像成功后,头像的url没变,加载头像时还是从缓存中根据url加载以前的图片. 这个问题,很多人遇到过.也受到很多同行的启发. 图片url不变,感觉不是很合理,这样会把缓存搞乱. 但是,作为 ...

  3. Android Studio修改字体大小

    android studio提供的主题是不能修改字体和字体大小的,如果要修改大小就的另存一份自定义的主题了. 1.启动Android Studio,菜单"File"-"S ...

  4. predefClass中包含的符号

    Scope[ ||(boolean,boolean), &&(boolean,boolean), !=(int,int), !=(long,long), !=(float,float) ...

  5. android 解决studio生成aar包并在其他工程引用aar包的坑,不需要任何gradle配置

    1.首先我们创建一个module 2.编写我们的一个类 3.编译我们的module,生成release版本的aar,注意千万不要是debug版本的, 点击最右边的gradle面板,选择我们的modul ...

  6. Core中使用Hangfire

    之前使用Quartz.Net,后来发现hangfire对Core的继承更加的好,而且自带管理后台,这就比前者好用太多了. 安装注册 安装 PM> Install-Package Hangfire ...

  7. 关于post跨域请求数据的问题-包括同源策略

    在<system.webServer>配置下面加入 <httpProtocol> <customHeaders> <add name="Access ...

  8. 消息队列系列(二):.Rabbitmq的使用及Web监控工具使用

    一.文档资料        1.官方网站:http://www.rabbitmq.com/        2.安装教程:http://www.rabbitmq.com/install-windows. ...

  9. BG.Hive - part3

    1. Hive数据导入 - Load Load,加载,不会进行任何数据转换和处理的操作,只会进行数据Move操作,将元数据移动到HDFS指定目录 a> hdfs dfs -put 'hdfs的h ...

  10. eclipse/myEclipse 代码提示和快捷键

    一.设置自动提示 设置eclipse/myEclipse代码提示可以方便开发者,不用在记住拉杂的单词,只用打出首字母,就会出现提示代码菜单. 1.菜单window->Preferences-&g ...