mysql if--else

SQL之case when then用法

case具有两种格式。简单case函数和case搜索函数。

复制代码
--简单case函数
case sexwhen '1' then '男'when '2' then '女’else '其他' end
--case搜索函数
case when sex = '1' then '男'when sex = '2' then '女'else '其他' end  
复制代码

这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。

 

还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。

--比如说,下面这段sql,你永远无法得到“第二类”这个结果
case when col_1 in ('a','b') then '第一类'when col_1 in ('a') then '第二类'else '其他' end  

下面实例演示:

3、将sum与case结合使用,可以实现分段统计。
     如果现在希望将上表中各种性别的人数进行统计,sql语句如下:

复制代码
SQL> select2    sum(case u.sex when 1 then 1 else 0 end)男性,3    sum(case u.sex when 2 then 1 else 0 end)女性,4    sum(case when u.sex <>1 and u.sex<>2 then 1 else 0 end)性别为空5  from users u;男性         女性       性别为空
---------- ---------- ----------3          2          0--------------------------------------------------------------------------------
SQL> select2    count(case when u.sex=1 then 1 end)男性,3    count(case when u.sex=2 then 1 end)女,4    count(case when u.sex <>1 and u.sex<>2 then 1 end)性别为空5  from users u;男性          女       性别为空
---------- ---------- ----------3          2          0
复制代码

 

转载于:https://www.cnblogs.com/nyfz/p/9111831.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kylin报错classnotfound:org.apache.hadoop.hive.serde2.typeinfo.typeInfo

最近新升级了最新的kylin-2.1 build cube的过程中mapreduce抛出异常 java.lang.ClassNotFoundException: org.apache.hadoop.hive.serde2.typeinfo.TypeInfo 很显然报错是指向jar包问题 在google上找到了解决了方法 find 一下sentry的位置 每个版本的hadoop上都会不一样 …

笔记41 Spring Web Flow——Demo

订购披萨的应用整体比较比较复杂&#xff0c;现拿出其中一个简化版的流程&#xff1a;即用户访问首页&#xff0c;然后输入电话号&#xff08;假定未注册&#xff09;后跳转到注册页面&#xff0c;注册完成后跳转到配送区域检查页面&#xff0c;最后再跳转回首页。通过这个简单…

星型模型和雪花型模型比较

文章转载 原文地址&#xff1a;http://blog.csdn.net/nisjlvhudy/article/details/7889422 一、概述 在多维分析的商业智能解决方案中&#xff0c;根据事实表和维度表的关系&#xff0c;又可将常见的模型分为星型模型和雪花型模型。在设计逻辑型数据的模型的时候&#xff0c…

CSS3弹性盒子Flex

CSS3弹性盒子Flex 基础知识和术语 原文链接&#xff1a;https://css-tricks.com/snippets/css/a-guide-to-flexbox/ 父级&#xff08;flex容器&#xff09;的属性 &#xff03;显示 这定义了一个flex容器; 内联或块取决于给定的值。它为所有直接的孩子提供了一个弹性环境。 .co…

如何设置winscp显示隐藏文件

不用设置 快捷键&#xff1a; Ctrl Alt H

python3.5学习笔记:linux6.4 安装python3 pip setuptools

文章转载自&#xff1a;http://www.cnblogs.com/liujian001/p/5160869.html 前言&#xff1a; python3应该是python的趋势所在&#xff0c;当然目前争议也比较大&#xff0c;这篇随笔的主要目的是记录在linux6.4下搭建python3环境的过程以及碰到的问题和解决过程。 另外&#…

Linux CentOS6离线安装Jupyter notebook

1、环境介绍 Linux: CentOS 6.7 Python: 2.7 2、安装python3.5 下载python3.5安装包&#xff1a; wget –no-check-certificate https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz解压到当前目录&#xff1a;tar -zxvf Python-3.5.0.tgzcd Python-3.5.0./configur…

private

Private Content转载于:https://www.cnblogs.com/ryueifu-VBA/p/9113114.html

Hive内部表与外部表区别详细介绍

文章转载自&#xff1a;http://www.aboutyun.com/thread-7458-1-1.html 1.创建内部表与外部表的区别是什么&#xff1f; 2.external关键字的作用是什么&#xff1f; 3.外部表与内部表的区别是什么&#xff1f; 4.删除表的时候&#xff0c;内部表与外部表有什么区别&#xff1f…

cloudera manager的7180 web界面访问不了的解决办法(图文详解)

说在前面的话 我的机器是总共4台&#xff0c;分别为ubuntucmbigdata1、ubuntucmbigdata2、ubuntucmbigdata3和ubuntucmbigdata4。&#xff08;注意啦&#xff0c;以下是针对Ubuntu系统的&#xff09; 在ubuntucmbigdata1上执行了 sudo apt-get install cloudera-manager-daemon…

pyspark与jupyter集成

最简单的一种方式: 修改环境变量 vi ~/.bashrc 添加 export PYSPARK_DRIVER_PYTHONjupyter export PYSPARK_DRIVER_PYTHON_OPTS’notebook’ source ~/.bashrc

java输入最大10位数,倒数输出(很鸡肋)

public class D { public static void main(String[] args) { System.out.println("请输入数字&#xff08;最大十位数&#xff09;:"); Scanner sc new Scanner(System.in); int sun sc.nextInt(); System.out.println("已输…

安装Redis常见问题

Install yum -y install gcc gcc-c libstdc-devel sudo yum install tcl tar xzf redis-2.8.8.tar.gz cd redis-2.8.8.tar.gz make MALLOClibc make test Q: cc: command not found yum -y install gcc gcc-c libstdc-devel Q: 安装redis 报错 make cd src &&am…

Linux服务器重启失败,报错Readonly File system

问题背景&#xff1a;linux 磁盘根分区太小&#xff0c;在对根目录进行扩容以后&#xff0c;从home目录抽取一块磁盘挂载到 /root 目录下&#xff0c;完成以后并没有修改 /etc/fstab 文件&#xff0c;导致系统开机以后继续寻找执行原来的 /home目录 解决思路&#xff1a; 修改…

2018 ios开发者账号同意新协议加联系电话教程

苹果开发者账号经常会更新协议&#xff0c;需要同意新的协议账号才能正常使用。 1、首先登录苹果开发者中心https://developer.apple.com/account/ 会出现下面飘红的提示&#xff0c;就是提示你要同意新协议。因为苹果规则的改变&#xff0c;需要先到appid管理中心加个联系手机…

Django REST FRAMEWORK swagger(一)框架详解

Django REST FRAMEWORK swagger&#xff08;一、框架详解&#xff09; 一.Django REST SWAGGER框架图 具体见下图 二.说明 RESTFul说明 每一个URI代表一种资源&#xff1b; 客户端和服务器之间&#xff0c;传递这种资源的某种表现层&#xff1b; 客户端通过四个HTTP动词&…

Kylin启动异常:java.lang.outofMemoryError:Requested array size exceeds VM limit

问题背景&#xff1a; 1、在Kylin里跑一个较大的cube,其中这个cube是一个大表事实表&#xff0c;关联两张维度表&#xff0c;在第三步&#xff1a; Extract Fact Table Distinct 报错&#xff0c;查看Mapreduce的执行过程&#xff0c;发现其中有4个Reduce执行失败&#xff0c;…

Prism for WPF初探(构建简单的模块化开发框架)

Prism for WPF初探&#xff08;构建简单的模块化开发框架&#xff09; 原文:Prism for WPF初探&#xff08;构建简单的模块化开发框架&#xff09;先简单的介绍一下Prism框架&#xff0c;引用微软官方的解释&#xff1a; Prism provides guidance to help you more easily desi…

Linux yum 安装MariaDB

1、在 /etc/yum.repos.d/ 下建立 MariaDB.repo,内容如下: [azureusermono etc]cd/etc/yum.repos.d[azureusermonoyum.repos.d]cd /etc/yum.repos.d [azureuser@mono yum.repos.d] vi MariaDB.repo MariaDB 10.0 CentOS repository list - created 2013-08-23 13:08 UTC h…

EBITDA的计算公式

EBITDA基本原理 EBITDA最早是在20世纪80年代中期使用杠杆收购的投资机构在对那些需要再融资的账面亏损企业进行评估时开始被大量使用。他们通过计算EBITDA来快速检查公司是否有能力来偿还这笔融资的利息。玩杠杆收购的那些投资银行家们推广了EBITDA的使用&#xff0c;他们通过E…