SQL的case语法

SQL的case语法



  • 基础语法
  • 数据准备
  • 要求说明
  • 代码实现





第一章 基础语法

基础语法

第01节 等值查询

SELECT
	字段1,
	字段2,
    CASE  字段3
		WHEN 值1 THEN 结果1
		WHEN 值2 THEN 结果2
		ELSE  结果3
		END  AS  别名
FROM
	表名称;



第02节 范围查询

SELECT
	字段1,
	字段2,
    CASE  
		WHEN 字段3>数据1 AND 字段3<=数据2 THEN 结果1
		WHEN 字段3>数据2 AND 字段3<=数据3 THEN 结果2
		ELSE  结果3
		END  AS  别名
FROM
	表名称;





第二章 数据准备

第01节 相关SQL

-- 创建数据库db03 如果不存在则创建
CREATE DATABASE IF NOT EXISTS db03;

-- 使用数据库
USE db03;

-- 创建表,并且插入数据到数据库当中
DROP TABLE IF EXISTS student;

CREATE TABLE IF NOT EXISTS student (
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(20),
	age INT,
	gender INT
);

-- 插入数据到数据库当中
INSERT INTO student VALUE (NULL,'张三',13, 1),(NULL,'李四',24, 1),
(NULL,'王五',35, 2),(NULL,'赵六',46, 2),(NULL,'钱七',57, 0);

-- 查询数据
SELECT * FROM student;



第02节 要求说明

要求说明

【要求一】 
		查询结果,根据性别的数据值,展示不同的结果
		情况一. 性别为 1 展示结果为 "男"
		情况二. 性别为 2 展示结果为 "女"
		情况三. 性别为 0 展示结果为 "妖"

【要求二】 
		查询结果,根据性别的数据值,展示不同的结果
		情况一. 年龄在 20岁以下, 展示结果  "少年"
		情况二. 年龄在 20岁以上 40岁以下, 展示结果  "青年"
		情况三. 年龄在 40岁以上 60岁以下, 展示结果  "中年"
		情况四. 年龄在 60岁以上, 展示结果  "老年"



第03节 效果展示

效果图

在这里插入图片描述





第三章 代码实现

第01节 要求一

/*
	【要求一】 
		查询结果,根据性别的数据值,展示不同的结果
		情况一. 性别为 1 展示结果为 "男"
		情况二. 性别为 2 展示结果为 "女"
		情况三. 性别为 0 展示结果为 "妖"
	
*/
SELECT 
	NAME,
	age,
	CASE gender 
		WHEN 1 THEN '男'
		WHEN 2 THEN '女'
		ELSE '妖'
		END AS sex
FROM 
	student;

第02节 要求二

/*
	【要求二】 
		查询结果,根据性别的数据值,展示不同的结果
		情况一. 年龄在 20岁以下, 展示结果  "少年"
		情况二. 年龄在 20岁以上 40岁以下, 展示结果  "青年"
		情况三. 年龄在 40岁以上 60岁以下, 展示结果  "中年"
		情况四. 年龄在 60岁以上, 展示结果  "老年"
	
*/
SELECT 
	NAME,
	gender,
	CASE 
		WHEN age<=20 THEN  "少年"
		WHEN age>20 AND age<=40 THEN "青年"
		WHEN age>40 AND age<=60 THEN "中年"
		ELSE "老年"
		END AS agelevel
FROM 
	student;