【PostgreSql高阶语法 】1、CASE WHEN THEN END用法

news/2024/7/9 20:27:11 标签: postgresql, 数据库, java, spring boot

目录

      • 1. 基础描述
      • 2. 用法举例
        • 2.1 基础使用
          • 2.1.1 方式1
          • 2.1.2 方式 2
        • 2.2 进行分组
        • 2.3 分组练习举例

1. 基础描述

  • 目的:在SQL语句中添加判断条件,就要用到CASE WHEN THEN END
  • 用法:类似于java里面的switch语句,一组CASE WHEN THEN END就是一条完整的字段,多条之间要使用逗号分隔开来;
  • 语法结构
	CASE 字段
	WHEN 条件1 THEN 做事赋值
	WHEN 条件2 THEN 做事赋值
	ELSE
		xxx
	END xxx;// 给结果字段重新起名
	CASE 
	WHEN 字段判断和条件1的关系 THEN 做事赋值
	WHEN 字段判断和条件2的关系 THEN 做事赋值
	ELSE
		xxx
	END xxx;

2. 用法举例

2.1 基础使用
2.1.1 方式1

数据库 student
在这里插入图片描述
使用sql语句:

java">SELECT
    sname,
    sage,
    ssex,
    CASE
        WHEN ssex = '1' THEN '男'
        WHEN ssex = '2' THEN '女'
        ELSE '其他'
    END  as sex
FROM
    student

查询结果:
在这里插入图片描述

2.1.2 方式 2

sql语句

java">SELECT
    sname,
    sage,
    ssex,
    CASE ssex
        WHEN '1' THEN '男'
        WHEN '2' THEN '女'
        ELSE '其他'
    END  as sex
FROM
    student

查询结果与上述一致

2.2 进行分组
  • 数据库
    在这里插入图片描述
  • 目的:按照国家进行男女数量分别统计
  • sql语句:
java">SELECT
	country,
	SUM ( CASE WHEN sex = '1' THEN amount ELSE 0 END ) AS,
	SUM ( CASE WHEN sex = '2' THEN amount ELSE 0 END ) ASFROM	
	world
GROUP BY
	country
  • 统计结果
    在这里插入图片描述
2.3 分组练习举例
  • 数据库:国家
    在这里插入图片描述
  • 目的:统计亚洲、北美洲以及其他州的人口数量
  • 结果概览
    在这里插入图片描述
  • sql语句
java">SELECT  
	SUM(population) AS 人口, 
	CASE   
		WHEN country in('中国','印度','日本') THEN '亚洲'
		WHEN country in('美国','加拿大','墨西哥') THEN '北美洲'
		ELSE '其他' 
	END ASFROM    
	国家 
GROUP BY
	CASE   
		WHEN country in('中国','印度','日本') THEN '亚洲' 
		WHEN country in('美国','加拿大','墨西哥') THEN '北美洲' 
		ELSE '其他' 
  	END 
  • 结果
    在这里插入图片描述

http://www.niftyadmin.cn/n/5170126.html

相关文章

有符号数是如何判断正负符号位的?

文章目录 有符号数是如何判断正负符号位的&#xff1f; 运行结果&#xff1a; 有符号数是如何判断正负符号位的&#xff1f; #include<stdio.h> int main() {int input_data 0;printf("Please input the data ! \n");scanf("%d",&input_data);…

小程序如何设置下单提示语句

下单提示会展示在购物车和提交订单页面&#xff0c;它可以帮助商家告知客户事项&#xff0c;提高用户体验和减少错误操作。例如提示&#xff1a;商品是否包邮、某些区域是否发货、商品送达时间等等。 在小程序管理员后台->配送设置处&#xff0c;填写下单提示。在设置下单提…

DAY50 309.最佳买卖股票时机含冷冻期 + 714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 题目要求&#xff1a;给定一个整数数组&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 你不…

Dell戴尔灵越Inspiron 7700 AIO一体机电脑原厂预装Windows10系统

链接&#xff1a;https://pan.baidu.com/s/1-slgR9t4Df_eko0Y6xaeyw?pwdmk0p 提取码&#xff1a;mk0p 灵越7700一体机原装出厂系统自带声卡驱动、无线网卡驱动、面部识别等所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、MyDell等预装程序 由于时间关系,…

容器数据卷+MYSQL实战

什么是容器数据卷&#xff1f; 让我们回忆一下docker理念&#xff1a; 就是将应用和环境打包成一个镜像 数据&#xff1f; 如果数据都在容器中&#xff0c;那么我们删除容器&#xff0c;数据就会丢失 &#xff01;需求&#xff1a;数据持久化就完美了 对于MYSQL&#xff0…

消息中间件汇总

RocketMQ和MetaQ的区别 RocketMQ和MetaQ其实是同一种消息队列中间件的两种不同称呼。 在阿里巴巴内部&#xff0c;它被称为MetaQ&#xff0c;而在开源版本中&#xff0c;它被称为RocketMQ。RocketMQ是MetaQ的3.0版本 ONS 阿里ONS是阿里巴巴公司推出的一款分布式消息系统。它基…

mysql,redis导入导出数据库数据

mysql 导出数据 导出整个数据库&#xff1a; mysqldump -u 用户名 -p 数据库名 > 导出文件.sql 例如&#xff0c;如果你的用户名是 root&#xff0c;数据库名是 mydatabase&#xff0c;你可以运行以下命令&#xff1a; mysqldump -u root -p mydatabase > 导出文件.sql…

【 云原生 | K8S 】Kubernetes 概述

Kubernetes 概述 1 K8S 是什么&#xff1f; K8S 的全称为 Kubernetes (K12345678S)&#xff0c;PS&#xff1a;“嘛&#xff0c;写全称也太累了吧&#xff0c;不如整个缩写”。 作用&#xff1a; 用于自动部署、扩展和管理“容器化&#xff08;containerized&#xff09;应用…