我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL CASE 的用法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL CASE 的用法

  1. --简单case函数

    case sex

      when '1' then '男'

      when '2' then '女’

      else '其他' end


    --case搜索函数

    case when sex = '1' then '男'

       when sex = '2' then '女'

       else '其他' end  



这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。

还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。

比如说,下面这段sql,你永远无法得到“第二类”这个结果:


case when col_1 in ('a','b') then '第一类'
   when col_1 in ('a') then '第二类'
   else '其他' end  

-------------------------------------------------------------------------------------------------------------------


2.批量更新数据

--假设状态只有3个选项,把所有FStatus=3的更新为1,FStatus=88的更新为5,FStatus=99的更新为9,

update T_SUF_Barcode set FStatus=(case FStatus

                     when '3' then '1' 

 when '88' then '55'

 else FStatus  end) 

 where   FBarcode  between '180121702150001' and '180121702153000'

----------------------------------------------------------------------------------------------------------------


3.将条码表中的状态用中文表示


select fstatus from T_SUF_Barcode t1   where   FBarcode  between '180121702150001' and '180121702153000'

--------------------------------------------------------------------------------------------------------------------

fstatus

1

...

5

...

5

9

...

---------------------------------------------------------------------------------------------------------------------


select t1.FBarcode, (case t1.FStatus

                   when  1 then '正常'

                   when  5 then '未知'

                   when  9 then '作废' end)状态

 from T_SUF_Barcode t1

 where   FBarcode  between '180121702150001' and '180121702153000'


FBarcode状态

180121702150001正常

180121702150002...

180121702150003 未知

180121702150004...

180121702150011作废

180121702150012...




4.将sum与case结合使用,可以实现分段统计。
     如果现在希望将上表中各种状态的条码进行统计,sql语句如下:


select

   sum(case t1.FStatus when 1 then 1  end)正常,

   sum(case t1.FStatus when 5 then 2  end)未知,

   sum(case  when t1.FStatus !=1 and t1.FStatus!=5 then 1  end)作废

from T_SUF_Barcode t1  where   FBarcode  between '180121702150001' and '180121702153000'


--sum求和,当为5时,更新为2,并求和符合条件的2。这里正常,未知,作废符合条件的各有1000个数据。


正常 未知          作废

1000 2000(1000*2)   1000


               --------------------------------------------

   

select

   count(case t1.FStatus when 1 then 1  end)正常,

   count(case t1.FStatus when 5 then 1  end)未知,

   count(case  when t1.FStatus !=1 and t1.FStatus!=5 then 1  end)作废

from T_SUF_Barcode t1  where   FBarcode  between '180121702150001' and '180121702153000'


--统计符合条件的个数。


正常 未知 作废

1000 1000 1000


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL CASE 的用法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql中case函数的用法

sql case 函数通过比较表达式结果执行不同的操作,其语法为:when expression then result1when expression then result2...[else default_result]endSQL
sql中case函数的用法
2024-04-28

sql case when的使用方法

CASE WHEN语句是SQL中的一种条件判断语句,用于根据不同的条件返回不同的值。基本语法如下:CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE r
sql case when的使用方法
2024-04-09

sql中的case语句用法

case 语句用于根据条件返回不同值。语法:case when condition then result when condition then result ... else default_result end。用法:1. 指定条件;
sql中的case语句用法
2024-04-28

sql中case when语句的用法

case when 语句用于 sql 中根据指定条件评估表达式并返回不同值。它的语法包含 when 子句(条件表达式和返回表达式)、else 子句(默认表达式)和 end 关键字。它可用于各种场景,包括分配值、修改结果和转换数据格式。CAS
sql中case when语句的用法
2024-04-28

关于sql中case when用法

在SQL中,CASE WHEN语句是一种条件表达式,用于根据指定的条件返回不同的结果。它的基本语法如下:CASE WHEN condition1 THEN result1WHEN condition2 THEN result2...ELS
关于sql中case when用法
2024-04-09

sql中case用法是什么

在SQL中,CASE语句用于实现类似于编程语言中的switch或if-then-else结构的逻辑判断和条件分支。它允许根据特定的条件返回不同的值,并可以在SELECT语句、WHERE子句、ORDER BY子句等中使用。CASE语句的基本
sql中case用法是什么
2024-04-09

SQL中case when then else end用法实例

目录一、阐述二、具体使用1.已知数据按照另外一种方式进行分组,分析。2.用一个sql语句完成不同条件的分组。补充:对case when 的理解总结总结一、阐述case when then else end 可以理解为Java的if-els
2023-02-01

SQL中case when then else end用法实例

CASEWHENTHENELSEEND是一个固定搭配,这样排列是想把通过格式把逻辑展示出来,CASE告诉计算机接下来是条件句式了,下面这篇文章主要给大家介绍了关于SQL中case when then else end用法的相关资料,需要的朋友可以参考下
2023-02-01

SQL case 两种不同写法

简单的case: CASE   WHEN THEN   WHEN THEN   ...   ELSE END CASE; 其中: 可以是任何有效的表达式。我们将  的值与每个 WHEN 子句中的值进行比较,例如 , 等。如果
2017-03-14

SQL之CASE WHEN怎么用

小编给大家分享一下SQL之CASE WHEN怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简单CASE WHEN函数:CASE SCORE WHEN A T
2023-06-20

sql中case的作用是什么

在SQL中,CASE语句用于在查询中根据条件执行不同的操作。它类似于编程语言中的switch语句,根据给定的条件值选择要执行的不同操作。CASE语句有两种形式:简单CASE表达式和搜索CASE表达式。简单CASE表达式用于比较单个表达式的
sql中case的作用是什么
2024-04-09

sql中的case语法一共多少种

sql 中的 case 语法提供了一种有条件地选择不同表达式的机制。它有四种类型:简单:检查条件真伪返回结果。搜索:比较值返回匹配结果。范围:基于范围条件返回结果。nullif:检查表达式是否相同,相同则返回 null。SQL 中的 CAS
sql中的case语法一共多少种
2024-04-28

oracle中case的用法

oracle 中的 case 语句是用于条件评估的工具,其用法包括:指定要评估的条件 (when)。如果条件为真,则执行的操作 (then)。如果所有条件都为假,则执行默认操作 (else,可选)。Oracle 中 CASE 语句的用法C
oracle中case的用法
2024-05-03

用case when优化Sql语句

用case when优化Sql语句 有些时候想直接从数据库查询数据,并导出,但一些类型或状态存储的是01等数字,你想显示对应的文字,这个时候就可以使用case...when语句了。结构case...when...then...when...the
用case when优化Sql语句
2020-06-19

编程热搜

目录