iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL CASE 的用法
  • 759
分享到

SQL CASE 的用法

2024-04-02 19:04:59 759人浏览 薄情痞子
摘要

--简单case函数case sex  when '1' then '男'  when '2' then '女’  else '其他' end--case搜索函数case wh

  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


您可能感兴趣的文档:

--结束END--

本文标题: SQL CASE 的用法

本文链接: https://www.lsjlt.com/news/38374.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • sql中的case语句用法
    case 语句用于根据条件返回不同值。语法:case when condition then result when condition then result ... else def...
    99+
    2024-04-28
  • sql中case函数的用法
    sql case 函数通过比较表达式结果执行不同的操作,其语法为:when expression then result1when expression then result2...[...
    99+
    2024-04-28
  • sql case when的使用方法
    CASE WHEN语句是SQL中的一种条件判断语句,用于根据不同的条件返回不同的值。 基本语法如下: CASE WHEN c...
    99+
    2024-04-09
    sql
  • sql中case when语句的用法
    case when 语句用于 sql 中根据指定条件评估表达式并返回不同值。它的语法包含 when 子句(条件表达式和返回表达式)、else 子句(默认表达式)和 end 关键字。它可用...
    99+
    2024-04-28
  • 关于sql中case when用法
    在SQL中,CASE WHEN语句是一种条件表达式,用于根据指定的条件返回不同的结果。它的基本语法如下: CASE WHEN con...
    99+
    2024-04-09
    sql
  • sql中case用法是什么
    在SQL中,CASE语句用于实现类似于编程语言中的switch或if-then-else结构的逻辑判断和条件分支。它允许根据特定的条...
    99+
    2024-04-09
    sql
  • SQL中case when怎么用
    这篇文章将为大家详细讲解有关SQL中case when怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。SQL中case when的用法Case具有两种格式:简单Cas...
    99+
    2024-04-02
  • SQL中case when then else end用法实例
    目录一、阐述二、具体使用1.已知数据按照另外一种方式进行分组,分析。2.用一个sql语句完成不同条件的分组。补充:对case when 的理解总结总结一、阐述 case when t...
    99+
    2023-02-01
    case when then else end用法 case when then end用法 case when用法sql
  • SQL中case when then else end用法实例
    目录一、阐述二、具体使用1.已知数据按照另外一种方式进行分组,分析。2.用一个sql语句完成不同条件的分组。补充:对case when 的理解总结总结一、阐述 case when then else end 可以理解为J...
    99+
    2023-02-01
    case when then else end用法 case when then end用法 case when用法sql
  • SQL之CASE WHEN怎么用
    小编给大家分享一下SQL之CASE WHEN怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简单CASE WHEN函数:CASE SCORE&nbs...
    99+
    2023-06-20
  • sql中case的作用是什么
    在SQL中,CASE语句用于在查询中根据条件执行不同的操作。它类似于编程语言中的switch语句,根据给定的条件值选择要执行的不同操...
    99+
    2024-04-09
    sql
  • sql中的case语法一共多少种
    sql 中的 case 语法提供了一种有条件地选择不同表达式的机制。它有四种类型:简单:检查条件真伪返回结果。搜索:比较值返回匹配结果。范围:基于范围条件返回结果。nullif:检查表达...
    99+
    2024-04-28
  • proc sql语句中的case怎么用
    这篇文章给大家分享的是有关proc sql语句中的case怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。proc sql;    s...
    99+
    2024-04-02
  • mysql中case的用法
    mysql中case的用法:以case关键字为开始,END为结束,逐一判断每个 WHEN 子句直到返回真值为止,语法“CASE WHEN <求值表达式> THEN <表达式>  ELSE <表达式&g...
    99+
    2024-04-02
  • oracle中case的用法
    oracle 中的 case 语句是用于条件评估的工具,其用法包括:指定要评估的条件 (when)。如果条件为真,则执行的操作 (then)。如果所有条件都为假,则执行默认操作 (els...
    99+
    2024-05-03
    oracle
  • MySQL中的case的用法
    1.case定义了处理循环概念以执行条件集并使用if-else返回匹配案例的方式 2.在MySQL中,case是一种控制语句 3.如果没有找到 true且语句没有 ELSE 部分或值,则 case 返回 null。 4.case语句的语法 ...
    99+
    2023-09-03
    数据库 java
  • sql中如何使用case when
    这篇文章主要介绍了sql中如何使用case when,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sql中case when的用法case具...
    99+
    2024-04-02
  • sql中如何使用case语句
    本篇文章给大家分享的是有关sql中如何使用case语句,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SQL中Case的使用方法Case具有两种...
    99+
    2024-04-02
  • MySql中case when的用法
    case when介绍: case when语句,用于计算条件列表并返回多个可能结果表达式之一。 CASE 具有两种格式:简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。 CASE 搜索函数计算一组布尔表达式以确定结果...
    99+
    2023-09-01
    mysql sql java
  • c++中switch case的用法
    在 c++ 中,switch-case 语句用于根据表达式的值执行不同的代码块:1. 表达式可以是整数、字符或枚举常量。2. case 分支指定要匹配表达式的值,可以有多个 case 匹...
    99+
    2024-05-06
    c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作