首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL CASE with CASE

是一种在SQL查询中使用CASE语句的方式。CASE语句是一种条件语句,用于根据不同的条件执行不同的操作或返回不同的值。

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

  1. 简单CASE表达式: 简单CASE表达式用于根据一个表达式的值来执行不同的操作。它的语法如下:
代码语言:txt
复制
CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE result
END

其中,expression是要比较的表达式,value1、value2等是可能的取值,result1、result2等是对应取值的操作或返回值。如果expression的值与任何一个value匹配,则执行对应的result。如果没有匹配的value,则执行ELSE后面的result。

举例来说,假设有一个名为"users"的表,其中包含"id"和"name"两列。我们想根据用户的id返回不同的用户名称,可以使用简单CASE表达式:

代码语言:txt
复制
SELECT id, 
    CASE id
        WHEN 1 THEN 'John'
        WHEN 2 THEN 'Jane'
        ELSE 'Unknown'
    END AS name
FROM users;

在上面的例子中,如果id为1,则返回'John';如果id为2,则返回'Jane';否则返回'Unknown'。

  1. 搜索CASE表达式: 搜索CASE表达式用于根据多个条件执行不同的操作。它的语法如下:
代码语言:txt
复制
CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result
END

其中,condition1、condition2等是要满足的条件,result1、result2等是对应条件满足时的操作或返回值。如果满足任何一个condition,则执行对应的result。如果没有条件满足,则执行ELSE后面的result。

举例来说,假设有一个名为"orders"的表,其中包含"order_id"和"order_date"两列。我们想根据订单的日期返回不同的订单类型,可以使用搜索CASE表达式:

代码语言:txt
复制
SELECT order_id, 
    CASE
        WHEN order_date < '2022-01-01' THEN 'Old'
        WHEN order_date >= '2022-01-01' AND order_date <= '2022-12-31' THEN 'Current'
        ELSE 'Unknown'
    END AS order_type
FROM orders;

在上面的例子中,如果订单日期早于'2022-01-01',则返回'Old';如果订单日期在'2022-01-01'和'2022-12-31'之间,则返回'Current';否则返回'Unknown'。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云数据库SQL Server:https://cloud.tencent.com/product/cdb_sqlserver
  • 腾讯云数据库PostgreSQL:https://cloud.tencent.com/product/cdb_postgresql

请注意,以上链接仅为示例,实际使用时应根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

共8个视频
腾讯云数据库TDSQL训练营 第一期
学习中心
专家直播授课,带你学习腾讯云TDSQL,从入门linux基础、计算机网络到SQL开发基础、管理平台
共17个视频
Oracle数据库实战精讲教程-数据库零基础教程【动力节点】
动力节点Java培训
视频中讲解了Oracle数据库基础、搭建Oracle数据库环境、SQL*Plus命令行工具的使用、标准SQL、Oracle数据核心-表空间、Oracle数据库常用对象,数据库性能优化,数据的导出与导入,索引,视图,连接查询,子查询,Sequence,数据库设计三范式等。
共8个视频
腾讯云数据库TDSQL训练营 第二期
学习中心
大咖带你学习腾讯云TDSQL for PG, 8天课程从入门linux基础、计算机网络到SQL开发基础、OSS管控平台
共50个视频
【动力节点】Java项目精通教程-EGOV项目实战开发(上)
动力节点Java培训
该项目纯授课时间为21天,包含大部分JAVA WEB知识。压缩包内部包含了PD数据库建模文件,项目数据初始化文件,sql源文件,最终版本源代码项目包,培训日志和外汇业务信息系统-界面原型,希望对大家的学习有所帮助。
共28个视频
【动力节点】Java项目精通教程-EGOV项目实战开发(下)
动力节点Java培训
该项目纯授课时间为21天,包含大部分JAVA WEB知识。压缩包内部包含了PD数据库建模文件,项目数据初始化文件,sql源文件,最终版本源代码项目包,培训日志和外汇业务信息系统-界面原型,希望对大家的学习有所帮助。
共29个视频
【动力节点】JDBC核心技术精讲视频教程-jdbc基础教程
动力节点Java培训
本套视频教程中讲解了Java语言如何连接数据库,对数据库中的数据进行增删改查操作,适合于已经学习过Java编程基础以及数据库的同学。Java教程中阐述了接口在开发中的真正作用,JDBC规范制定的背景,JDBC编程六部曲,JDBC事务,JDBC批处理,SQL注入,行级锁等。
领券