Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql的case when语法_sql基本语句大全

mysql的case when语法_sql基本语句大全

作者头像
全栈程序员站长
发布于 2022-10-04 02:58:17
发布于 2022-10-04 02:58:17
4K01
代码可运行
举报
运行总次数:1
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

介绍mysql数据库中case when语句的用法,首先介绍case when语句的基础知识,然后提供了相关例子。

(1)mysql数据库中CASE WHEN语句。

case when语句,用于计算条件列表并返回多个可能结果表达式之一。

CASE 具有两种格式:简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。 CASE 搜索函数计算一组布尔表达式以确定结果。 两种格式都支持可选的 ELSE 参数。

语法如下:

1)简单 CASE 函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CASE input_expression
WHEN when_expression THEN
    result_expression [...n ] [
ELSE
    else_result_expression
END

参数介绍:

input_expression 是使用简单 CASE 格式时所计算的表达式。Input_expression 是任何有效的 Microsoft SQL Server 表达式。

WHEN when_expression 使用简单 CASE 格式时 input_expression 所比较的简单表达式。When_expression 是任意有效的 SQL Server 表达式。Input_expression 和每个 when_expression 的数据类型必须相同,或者是隐性转换。

占位符 ,表明可以使用多个 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。

THEN result_expression 当 input_expression = when_expression 取值为 TRUE,或者 Boolean_expression 取值 TRUE 时返回的表达式。

result expression 是任意有效的 SQL Server 表达式。

ELSE else_result_expression 当比较运算取值不为 TRUE 时返回的表达式。如果省略此参数并且比较运算取值不为 TRUE,CASE 将返回 NULL 值。else_result_expression 是任意有效的 SQL Server 表达式。else_result_expression 和所有 result_expression 的数据类型必须相同,或者必须是隐性转换。

简单 CASE 函数: 返回结果值介绍:

计算 input_expression,然后按指定顺序对每个 WHEN 子句的 input_expression = when_expression 进行计算。

返回第一个取值为 TRUE 的 (input_expression = when_expression) 的 result_expression。如果没有取值为 TRUE 的 input_expression = when_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。

2)CASE 搜索函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CASE
WHEN Boolean_expression THEN
    result_expression [...n ] [
ELSE
    else_result_expression
END

参数介绍:

WHEN Boolean_expression 使用 CASE 搜索格式时所计算的布尔表达式。Boolean_expression 是任意有效的布尔表达式。结果类型从 result_expressions 和可选 else_result_expression 的类型集合中返回最高的优先规则类型。有关更多信息,请参见数据类型的优先顺序。

CASE 搜索函数:返回结果值介绍:

按指定顺序为每个 WHEN 子句的 Boolean_expression 求值。返回第一个取值为 TRUE 的 Boolean_expression 的 result_expression。

如果没有取值为 TRUE 的 Boolean_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。

(2) MySQL case when例子介绍

1、 使用带有简单 CASE 函数的 SELECT 语句

在 SELECT 语句中,简单 CASE 函数仅检查是否相等,而不进行其它比较。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
    CASE parent_id
WHEN 0 THEN
    '00'
WHEN 1 THEN
    '11'
ELSE
    'OTHERS'
END AS parent_id_new ,
parent_id ,
type_id ,
type_name
FROM
    tdb_goods_types

2、使用带有简单 CASE 函数和 CASE 搜索函数的SELECT 语句

在 SELECT 语句中,CASE 搜索函数允许根据比较值在结果集内对值进行替换。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
    CASE
WHEN parent_id < 3 THEN
    '<3'
WHEN parent_id >= 3
AND parent_id < 5 THEN
    '>=3 && <5'
ELSE
    '>=5'
END AS parent_id_new ,
parent_id ,
type_id ,
type_name
FROM
    tdb_goods_types

3、CASE 可能是 SQL 中被误用最多的关键字之一

虽然,可能以前用过这个关键字来创建字段,但是它还具有更多用法。

例如,可以在 WHERE 子句中使用 CASE。或者在 GROUP BY 子句中使用 CASE

使用CASE WHEN进行字符串替换处理,稍加深入,还可以得到以前认为不可能得到的分组排序结果集。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
    CASE
WHEN parent_id < 3 THEN
    '<3'
WHEN parent_id >= 3
AND parent_id < 5 THEN
    '>=3 && <5'
ELSE
    '>=5'
END AS parent_id_new ,
count(*) AS num_count ,
parent_id ,
type_id ,
type_name
FROM
    tdb_goods_types
GROUP BY
    parent_id_new
ORDER BY
    num_count

4、其他例子

%简单语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
    CASE
WHEN 10 * 2 = 30 THEN
    '30 correct'
WHEN 10 * 2 = 40 THEN
    '40 correct'
ELSE
    'Should be 10*2=20'
END;

%多重语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
    CASE 10 * 2
WHEN 20 THEN
    '20 correct'
WHEN 30 THEN
    '30 correct'
WHEN 40 THEN
    '40 correct'
END;

%在SELECT查询中使用CASE WHEN

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
    CASE parent_id
WHEN 0 THEN
    '00'
WHEN 1 THEN
    '11'
ELSE
    'OTHERS'
END AS parent_id_new ,
parent_id ,
type_id ,
type_name
FROM
    tdb_goods_types

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月5日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
sql server T-SQL 基础
SQL语言按照用途可以分为如下3类: ①DDL(Data Definition Language)  数据定义语言:    定义修改和删除数据库、表、索引和视图等 ②DML(Data Manipulation Language)  数据处理语言:    对数据进行查询(SELECT)、插入(INSERT)、删除(DELETE)、更新(UPDATE)等 ③DCL(Data Control Language)  数据控制语言:    对数据库对象的权限管理和事务管理 一、T-SQL语法基础 1.标识符 在SQL
欠扁的小篮子
2018/04/09
2.2K0
sql server   T-SQL 基础
mysql基础
安装后,安装mysql,点击接受,默认安装,然后就是next,点击提示框的是,接着点击execute和next,设置密码和重复密码,windows service name为mysql,next和execute,next,next,execute,finish即可完成安装。
达达前端
2019/07/03
5820
mysql基础
【重学 MySQL】八十二、深入探索 CASE 语句的应用
在MySQL中,CASE 语句提供了一种强大的方式来实现条件分支逻辑,它相当于编程中的 if-else 或 switch 语句,允许在SQL查询中根据条件表达式的值选择不同的执行路径。
用户11332765
2024/11/13
2990
【重学 MySQL】八十二、深入探索 CASE 语句的应用
CASE语句与CASE表达式
case语句与case表达式是plsql流程控制的重要组成部分,尽管其使用方法较为简单,但容易混淆。本文将描述case语句与case表达式并给出演示以便于更好理解两者的异同及使用时的注意事项。 一、简单case语句
Leshami
2018/08/14
1.4K0
知识点、SQL语句学习及详细总结
sql server详细的基础总结,可先点开CSDN自带的博客目录看看大体结构~ 一. 数据库简介和创建 1. 系统数据库 在安装好SQL SERVER后,系统会自动安装5个用于维护系统正常运行的系统数据库: (1)master:记录了SQL SERVER实例的所有系统级消息,包括实例范围的元数据(如登录帐号)、端点、链接服务器和系统配置设置。 (2)msdb:供SQL SERVER 代理服务调度报警和作业以及记录操作员的使用,保存关于调度报警、作业、操作员等信息。(备份还原时) (3)model:
慕白
2018/07/06
2K0
Oracle PL/SQL基础语法学习16:CASE Expression(CASE表达式)
PL/SQL是Oracle数据库中的一种嵌入式语言,其功能强大,可以进行存储过程和函数的编写,帮助开发者快速高效地处理数据库操作。
SQLplusDB
2023/08/17
6990
Oracle PL/SQL基础语法学习16:CASE Expression(CASE表达式)
MySQL条件判断IF,CASE,IFNULL语句详解
1.IF语句的基本用法 IF(condition, true_statement, false_statement); condition: 条件表达式,可以是任何返回布尔值的表达式。 true_statement: 如果条件为真,则执行的语句。 false_statement: 如果条件为假,则执行的语句。
oktokeep
2024/10/09
3000
经典的SQL 语句大全
一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left (outer) join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.
斯文的程序
2019/11/07
1.9K0
SQL:搞懂case语句,看这篇就可以啦!
SQL里CASE 语句允许数分同学在查询中执行条件逻辑。了解如何使用其功能可以显著增强工作效率和数据处理的能力。在本文中,我们将深入探讨 SQL CASE 语句,涵盖其语法、各种用例,并提供实用的代码示例来巩固大家的理解。
万能数据的小草
2024/07/23
1.8K0
SQL:搞懂case语句,看这篇就可以啦!
【Mysql-3】条件判断函数-CASE WHEN、IF、IFNULL详解
在众多SQL中,统计型SQL绝对是让人头疼的一类,之所以如此,是因为这种SQL中必然有大量的判读对比。而条件判断函数就是应对这类需求的利器。本文重点总结CASE WHEN、IF、IFNULL三种函数。
云深i不知处
2020/09/16
28.9K0
Case When ELSE END语句
一、简介、Case  When   ELSE   END共有两种用法:  说实话,这种就是数据库版的switch语句,但是只是形式上很像,实际上还是有差别的!!! Create Table Test6
郑小超.
2018/01/26
2.5K0
HQL语句大全
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。 Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。
shirayner
2018/08/10
2.7K0
if sql语句_SQL IF语句介绍和概述
This article explores the useful function SQL IF statement in SQL Server.
全栈程序员站长
2022/09/13
2.5K0
if sql语句_SQL IF语句介绍和概述
SQL进阶-1-case使用
认真把SQL语言提升下,选择了日本的一本书籍。看过几本其他日本的IT人员写的书籍,发现他们好像有一个共同的特点,也是自己很喜欢而且一直坚持在使用的一点:多用图,将文字和图形结合起来,比如:
皮大大
2021/03/01
7740
SQL进阶-1-case使用
SQL之CASE WHEN用法详解
[Err] ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER
全栈程序员站长
2022/06/24
7160
SQL之CASE WHEN用法详解
SQL 数据操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 语句详解
提示: SELECT INTO 还可以用于使用另一个表的架构创建新的空表。只需添加一个导致查询不返回数据的 WHERE 子句:
小万哥
2023/11/30
9100
SQL 数据操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 语句详解
【MySQL 系列】MySQL 语句篇_DQL 语句
DQL(Data Query Language),即数据查询语言,用来查询数据记录。DQL 基本结构由 SELECT FROM、WHERE、JOIN 等子句构成。
栗筝i
2024/03/19
6800
【MySQL 系列】MySQL 语句篇_DQL 语句
SQL 循环语句 while 介绍 实例
WHILE 设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。
全栈程序员站长
2022/07/18
1.8K0
PHP 代码审计之死磕 SQL 注入
代码审计中对 SQL 注入的审计是很常见的,那么要怎样才能审计出一个 SQL 注入呢?
信安之路
2018/08/08
1.7K0
PHP 代码审计之死磕 SQL 注入
学习SQL【8】-谓词和CASE表达式
谓词 什么是谓词 谓词就是返回值为真值的函数。对于通常的函数来说,返回值有可能是数字、字符串和日期等,但是谓词的返回值全部是真值。这也是谓词和函数的最大区别。 谓词主要有以下几种: LIKE BETWEEN IS NULL、IS NOT NULL IN EXISTS LIKE谓词—字符串的部分一致查询 截止目前,我们使用字符串作为查询条件的例子使用的都是=。这里的=只有在字符串完全一致时才为真。与之相反,LIKE谓词更加模糊一些,当需要进行字符串的部分一致查询时需要使用该谓词。 部分一致大体可以分为前方一致
爱吃西瓜的番茄酱
2018/04/04
2.3K0
相关推荐
sql server T-SQL 基础
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档