首页 > 数据库 >SQL中的CASE语句

SQL中的CASE语句

时间:2023-09-29 11:03:56浏览次数:34  
标签:CASE 语句 age WHEN ELSE result SQL 表达式

在SQL中,CASE语句是一种条件表达式,用于在查询中根据条件返回不同的结果。它可以根据条件进行逻辑判断,并根据判断结果返回不同的值。

CASE语句有两种形式:简单CASE表达式和搜索CASE表达式。

1. 简单CASE表达式:

简单CASE表达式基于一个表达式进行比较,并根据比较结果返回不同的值。它的语法如下:

CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE result
END

其中,expression是要进行比较的表达式,value1、value2等是待比较的值,result1、result2等是与每个值对应的结果。如果expression的值与某个value相等,则返回对应的result值。如果没有匹配的值,则返回ELSE后面的result值。以下是一个简单CASE表达式的示例:

SELECT name, age,
    CASE gender
        WHEN 'M' THEN 'Male'
        WHEN 'F' THEN 'Female'
        ELSE 'Unknown'
    END AS gender_text
FROM users;

在上面的示例中,根据gender字段的值,将其转换为相应的文本值。

2. 搜索CASE表达式:

搜索CASE表达式没有固定的比较值,它根据一系列条件进行逻辑判断,并返回满足条件的结果。它的语法如下:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result
END

其中,condition1、condition2等是待判断的条件,result1、result2等是与每个条件对应的结果。如果某个条件为真,则返回对应的result值。如果没有条件为真,则返回ELSE后面的result值。以下是一个搜索CASE表达式的示例:

SELECT name, age,
    CASE
        WHEN age < 18 THEN 'Minor'
        WHEN age >= 18 AND age < 65 THEN 'Adult'
        ELSE 'Senior'
    END AS age_group
FROM users;

在上面的示例中,根据age字段的值,将其划分为不同的年龄组。

CASE语句在SQL中非常灵活,可以根据不同的条件返回不同的结果。您可以根据具体的业务需求使用CASE语句来实现自定义的逻辑和转换。

标签:CASE,语句,age,WHEN,ELSE,result,SQL,表达式
From: https://blog.51cto.com/u_13372349/7648409

相关文章

  • sql查询之拼接外表或该表不存在的数据,简化多表联查的操作
    (内容)1.引言最近写项目时,用到了多表联查的知识点,我需要传article类和web_user类的username的参数这是我的三个表--MySQLdump10.13Distrib8.0.26,forWin64(x86_64)----Host:127.0.0.1Database:web-----------------------------------------------------......
  • 复习课12 选择语句与循环语句
    一.选择语句为了更好的讲解选择语句我们举一个例子:如果我们在学校认真学习则可以在考试时取得好的成绩,反之分数取得的成绩就会不理想,那么我们如何在程序中让用户选择是认真学习还是不认真学习,并返回相应的结果呢?以下是一段示例代码:#define_CRT_SECURE_NO_WARNINGS1#include<stdi......
  • java——mysql随笔
         索引简介:                                                                 1 ......
  • 读高性能MySQL(第4版)笔记17_复制(下)
    1. 复制切换1.1. 复制是高可用性的基础1.1.1. 总是保留一份持续更新的副本数据,会让灾难恢复更简单1.2. “切换副本”(promotingareplica)和“故障切换”(failingover)是同义词1.2.1. 意味着源服务器不再接收写入,并将副本提升为新的源服务器1.3. 计划内切换1.3.1. 常......
  • JS的循环、判断,选择语句
    1、选择语句switch(条件){casea:caseb:casec:cased:default:}2、判断语句letflag=true;if(flag){document.write("这是真的");}else{document.write("这是假的")}3、JS的循环语句3.1、while循环while(循环条件){}3.2......
  • 甲骨文宣布: 也做 PostgreSQL!
    PostgreSQL在开源数据库世界中一直是一个标志性的存在。经过35年的严格开发,它以其可靠性、强大的功能和性能而自豪。DB-engines的突出显示,其市场份额的增长证明了其适应性强的数据模型和满足各种用例需求的多样化扩展。考虑到PG突出的地位,甲骨文将推出基于PostgreSQL14.9版......
  • mysql将换行替换成空格
    #char(10)换行符char(13)回车符号select*fromview_nichtware_wms_inventorywhereDESCRIPTIONlikeconcat('%',char(10),'%')andSKU='DMKT-20220124-013';#去除换行和回车符号REPLACE(REPLACE(remarks,char(13),''),char(10),'......
  • 甲骨文宣布: 也做 PostgreSQL!
    PostgreSQL在开源数据库世界中一直是一个标志性的存在。经过35年的严格开发,它以其可靠性、强大的功能和性能而自豪。DB-engines的突出显示,其市场份额的增长证明了其适应性强的数据模型和满足各种用例需求的多样化扩展考虑到PG突出的地位,甲骨文将推出基于 PostgreSQL14.9版......
  • Sql(多级分销)无限极数据库表设计方法
    相信有过开发经验的朋友都曾碰到过这样一个需求。假设你正在为一个新闻网站开发一个评论功能,读者可以评论原文甚至相互回复。这个需求并不简单,相互回复会导致无限多的分支,无限多的祖先-后代关系。这是一种典型的递归关系数据。对于这个问题,以下给出几个解决方案,各位客......
  • 动手分析SQL Server中死锁形成原因
    摘要上次在《动手分析SQLServer中的事务中使用的锁》一文中分析了事务中是如何使用锁,对于insert、update和select中使用的锁以实例的方式进行了初步分析,不过日常使用的时候都是很多事务同时执行,有时候难免会遇到死锁和阻塞的问题,近期在生产环境就遇到了一些死锁方面的问题,本文计......