精华内容
下载资源
问答
  • CASE WHEN使用方法
    2021-05-25 16:09:13

    在数据库的使用中,每个方法和关键词都有场景可以使用,例如CASE WHEN

    SELECT  CASE  WHEN  NAME='美婷'  THEN  '我爱美婷'  
    WHEN  NAME='胖婷' THEN  '我爱胖婷'  
    ELSE  '我爱婷婷'  END  as "美女" FROM  TABLE 
    

    CASE 开头,END结尾
    例如:WHEN NAME=‘美婷’ THEN ‘我爱美婷’
    翻译过来就是:如果name的值是‘美婷’,那就给她赋值为‘我爱美婷’或者想要给它放哪个字段也可以
    ELSE 就是其他的意思
    (不懂的可以私聊问我)

    更多相关内容
  • MySQL中case when的基本用法总结

    万次阅读 多人点赞 2018-12-06 15:14:15
    MySQL中的case when有用两种用法,官方文档中的说明如下: 用法一: CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE 用法...

    MySQL中的case when有用两种用法,官方文档中的说明如下:

    用法一:

    CASE case_value
        WHEN when_value THEN statement_list
        [WHEN when_value THEN statement_list] ...
        [ELSE statement_list]
    END CASE

    用法二:

    CASE
        WHEN search_condition THEN statement_list
        [WHEN search_condition THEN statement_list] ...
        [ELSE statement_list]
    END CASE

    下面通过具体示例来说明case when这两种用法的区别:

    创建salary表,并向salary表中插入数据:

    # 创建salary表:
    create table salary(
    id int,
    name char(1),
    sex char(1),
    salary int
    )engine myisam charset utf8;
    
    #向salary表中插入数据:
    insert into salary values
    (1,'A','m',2500),
    (2,'B','f',1500),
    (3,'C','m',5500),
    (4,'D','f',500);

    示例一:在查询语句中实现更改salary表中员工的性别,即如果员工的性别是‘m’,则将其改为‘f’,反之如果性别为‘f’,则将其改为‘m’。

    采用case when的第一种用法:

    select id,name,
    case sex
    when 'f' then 'm'
    else 'f' end as new_sex,salary from salary;

    这种用法通过比较case后面的case_value和第一个when后面的when_value,若二者相等则给new_sex赋一个指定的值,若二者值不相等,则比较case_value与第二个when后面的when_value是否相等,以此类推。若case_value与所有的when_value都不相等,且有else语句的话,则把else后面的值赋给new_sex,否则把null值赋给new_sex。

    采用case when的第二种用法:

    select id,name,case
    when sex='f' then 'm'
    else 'f' end as new_sex,salary from salary;

    上述代码中,when后面是一个逻辑表达式,若表达式为真,则把then后面的值赋给new_sex;若第一个when后面表达式为假,则查看第二个when后面的逻辑表达式,以此类推的;若所有when后面的逻辑表达式均为假,且有else语句的话,则把else后面的值赋给new_sex,否则把null值赋给new_sex.

    示例二:在查询语句中实现将salary表中员工的工资归类。归类依据是,工资在1000元以下的归为‘low’类,工资在1000-3000元范围归为‘middle’类,工资在3000元以上的归为‘high’类。

    这种情况只能采用case when的第二种用法:

    select id,name,sex,case
    when salary > 3000 then 'high'
    when salary between 1000 and 3000 then 'middle'
    else 'low' end as salary_level from salary;

    假如以3000元为界限,将3000元以上的工资归为‘high'类,3000元以下包括3000元的工资归为‘low’类,则此时也可以采用case when的第一种用法:

    select id,name,sex,case salary>3000
    when True then 'high'
    else 'low' end as salary_level from salary;

    总结:由前文所述可知,case when的第一类用法只适用于二值比较问题,而case when的第二种用法的适用范围更广。因此我将case when的第一中用法理解为简单条件赋值,第二种用法理解为复杂条件赋值。

    PS:本文为原创文章,转载请注明出处。

    展开全文
  • 2. 使用case 字段 when.. then... else...end来判断字段的多种情况下,执行不同的操作。  案例一: 更新某个字段为给定的值,如果字段为空或者未匹配到的情况下,就不修改其值。 update sys_wfl_document_...

    1.将所得到的天数按照[0,90],[91,180],[181,360],[361,720],(720,∞) 分组排序

    SELECT
        T.*,
    IF
        ( T.days >= 0 AND T.days <= 90, T.days, "" ) day1,
    IF
        ( T.days >= 91 AND T.days <= 180, T.days, "" ) day2,
    IF
        ( T.days >= 181 AND T.days <= 360, T.days, "" ) day3,
    IF
        ( T.days >= 361 AND T.days <= 720, T.days, "" ) day4,
    IF
        ( T.days >= 721, T.days, "" ) day5
    FROM

    .....

    效果如下:

     

    2. 使用case  字段 when.. then... else...end来判断字段的多种情况下,执行不同的操作。

      案例一: 更新某个字段为给定的值,如果字段为空或者未匹配到的情况下,就不修改其值。

    update sys_wfl_document_ref  set first_approver_name =case document_number

    when 'BZ202001001150'  then '     张三       '
    when 'BZ202001000553'  then '     李四      '

    else first_approver_name
    end

    案例二: 不根据某个字段判断,可以根据表达式判断

      case  
         when temp.fromLevelCode= '05' then 'T8-亚洲(不含香港)'
           when temp.fromLevelCode= '06' then 'T9-欧美(香港)'
             when temp.toLevelCode='05' then 'T8-亚洲(不含香港)'
              when temp.toLevelCode='06' then 'T9-欧美(香港)'
        else      temp1.t_code
        end travelType

     

    展开全文
  • mysql case when 用法

    2021-01-18 19:21:48
    MySQL 的 case when 的语法有两种:简单函数CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END搜索函数CASE WHEN [expr] THEN [result1]…ELSE [default] END区别:搜索函数可以写判断,并且搜索...

    MySQL 的 case when 的语法有两种:

    简单函数

    CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END

    搜索函数

    CASE WHEN [expr] THEN [result1]…ELSE [default] END

    区别:

    搜索函数可以写判断,并且搜索函数只会返回第一个符合条件的值,其他case被忽略

    以下是示例,查看近7天的订单:

    SELECT

    `order_id` AS "订单号",

    price` AS "实际金额",

    CASE status

    WHEN 1 THEN

    '已退货'

    WHEN 3 THEN

    '无效'

    WHEN 15 THEN

    '待付款'

    WHEN 16 THEN

    '已付款'

    WHEN 17 THEN

    '已完成'

    ELSE

    '其它'

    END AS "订单状态",

    DATE_FORMAT(order_time, '%Y-%m-%d %H:%i:%s') AS "下单时间"

    FROM

    order_table

    WHERE

    order_time BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY)

    AND now()

    ORDER BY

    order_time ASC

    展开全文
  • Mybatis中case when 配合 trim的使用方法

    千次阅读 2020-08-06 09:29:10
    Mybatis中case when 配合 trim的使用方法Mybatis中trim标签的使用case when使用方法demo(批量更新数据) Mybatis中trim标签的使用 1、作用:一般用于去除sql语句中多余的and关键字、逗号、或者给sql语句前拼接...
  • 1. 判断(case when)SELECT col1, col2,CASEWHEN col3 > 1 AND col3 <2THEN ''WHEN col3 > 2 AND col3 <3THEN ''WHEN col3 >...4THEN ''ELSE ''END mylevelFROM table1注意点:(1) 以CASE开头,以E...
  • case when用法

    2018-09-19 11:25:42
    when then [when then …… [else ]] end 【功能】当:= 时,返回对应 当不为条件表达式时,与函数decode()相同, decode(,,,, ……,) 【参数】 默认为true (逻辑型) 类型要与类型一致, 若为...
  • Oracle case when用法

    万次阅读 2014-01-16 14:44:58
    CASE表达式可以SQL中实现if-then-else型的逻辑,而不必使用PL/SQL。 注意点:  1、以CASE开头,以END结尾  2、分支中WHEN 后跟条件,THEN为显示结果  3、ELSE 为除此之外的默认情况,类似于高级语言程序中...
  • Oracle中case when用法

    万次阅读 多人点赞 2018-09-11 22:23:28
    case when 表达式是一个通用条件的表达式,可以表达式有效的任何位置使用用法如下: CASE WHEN condition THEN result [ WHEN condition THEN result ] ... [ ELSE result ] END condition:返回一...
  • case when then end用法

    千次阅读 2019-01-02 15:27:38
    select case when 1=1 then '1等于1'   when 1=2 then '1等于2啦'  when 1=3 then '1=3'  else '其他等式' ... 以case开头,end结束。 when和then相当于“如果...那么”,el...
  • ORACLE之case when用法

    2020-04-13 09:26:31
    case when 表达式是一个通用条件的表达式,可以表达式有效的任何位置使用用法如下: CASE WHEN condition THEN result [ WHEN condition THEN result ] … [ ELSE result ] END condition:返回一个布尔结果的...
  • 以case开头end结尾1、case when 条件1 then 取值1 else 不满足条件的取值 end2、case 字段 when 条件值 then 满足条件后的结果 else 不满足条件的结果 end3、case when 条件表达式1 then 满足条件后的结果1 else 不...
  • 如何drools规则的'when'部分中调用Java函数?我想部分规则中调用简单的java方法。我的代码如下所示:rule "Ret Rule"whenMap(this["LOYAL"] == "true")Map(this["LOYALTYPROMORETENTION"] == "true"...
  • mybatis case when

    千次阅读 2021-02-28 17:00:31
    Mybatis中case when 配合 trim的使用方法 Mybatis中trim标签的使用 case when使用方法 demo(批量更新数据) Mybatis中trim标签的使用 1、作用:一般用于去除sql语句中多余的and关键字、逗号、或者给sql语句前拼接...
  • select a.StaID 检测站id,a.StaName 检测站名称,case when b.StaID is null then '否' else '是' end 是否进行日常检查 from Org_DetectStation a left join (select distinct StaID,StaName from Dev_DailyCheck ...
  • 一、ORACLE-MySQL中concat函数(连接字符串) 1.concat函数:concat(str1,str2,…)...concat函数连接字符串的时候,只要其中一个是NULL,那么将返回NULL。 select concat('11','22',null); +-------------------...
  • select case when 1 = 1 then '1等于1' when 1 = 2 then '1等于2' when 1 = 3 then '1等于3' ...以case开头,end结束。 when和then相当于“如果…那么…”,else相当于如果以上都不成立,那么就。。 ...
  • 转载:SQL中正则表达式和case when

    千次阅读 2018-08-16 17:26:22
    1、查找name字段中以'st'为开头的所有数据:  SELECT name FROM person_tbl WHERE name ...CASE关键字有两种使用方法,分别是‘简单case函数’和‘case搜索函数’ 简单case函数 CASE sex  WHEN 1 THEN '男'  ...
  • Oracle之case when用法

    2022-05-08 16:47:54
    前言 case when语法: CASE search_expression...Oracle case when使用注意事项有如下几点 注意点: 1、以CASE开头,以END结尾 2、分支中WHEN 后跟条件,THEN为显示结果 3、ELSE 为除此之外的默认情况,类似于高级语
  • ifMysql中有两种基本用法 1、用select查询当中,当做一种条件来进行判断 基本语法:if(条件,为真结果,为假结果) 2、用复杂的语句块中(函数/存储过程/触发器) if 条件表达式 then 满足条件要执行的...
  • sql的case when和left join

    千次阅读 2019-05-08 11:08:57
    总结一下昨天写sql时新接触到的知识点。 SELECT c . ` name ...WHEN ...WHEN ...WHEN ...WHEN ...WHEN ...case when ...首先是遇到了为查询出来的值设置别名的情况,...尽量不要使用字符串的形式比较,比较方法可以参考 这篇文章 。
  • sql语句判断字符串以什么什么开头

    千次阅读 2020-12-30 08:51:09
    补充:我的意思是,SQL库里有正确数据和错误数据,我要查出两个数据集,比如:if(正确数据的SQL语句)插入正确数据库else if(错误数据的SQL语句)插入错误数据库或者其他方法判断,我想知道if()里的条件应该怎么...
  • Kotlin之逻辑控制:when

    千次阅读 2020-06-13 16:52:41
    每一条判断语句都要最后主动加上一个break,否则会执行下一个case,当然这也有利有弊,可以利用这种特性实现一些功能,但是维护的过程中很容易出问题 kotlin中的when不仅仅解决了上述的痛点,还增加了许多强大的新...
  • oracle when函数用法

    2011-04-14 17:23:20
    oracle case when用法 SELECT col1, col2, CASE WHEN col3 &gt; 1 AND col3 &lt;2 THEN '1' WHEN col3 &gt; 2 AND col3 &lt;3 THEN '2' WHEN col3 &...
  • count和case when结合使用的注意事项。
  • choose+when+otherwise的用法3. set+sql4. foreach 可以根据参数不同,生成的不同sql语句 标签:if,where,choose,when,otherwise,set,sql,foreach 建表 CREATE TABLE `blog` ( `id` VARCHAR(50) NOT NULL...
  • 复制代码 代码如下:/** PHP把所有以__(两个下划线)开头的类方法当成魔术方法。所以你定义自己的类方法时,不要以 __为前缀。 * */ // __toString、__set、__get__isset()、__unset()/* The __toString method ...
  • 为什么类中的field不能用is开头呢?本文将从问题演示、框架源码(本文使用的Jackson)两个方面来进行阐述。
  • Oracle CASE WHEN LIKE查询

    千次阅读 2019-09-07 17:45:21
    Oracle CASEWHEN的常规用法 SELECT CASE T.PAYCODE WHEN '1' THEN T.CASH WHEN '2' THEN T.CREDIT ELSE T.CASH END AS PAYAMOUNT FROM PAYMENT T; -...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,252
精华内容 28,100
关键字:

when在开头的用法