zoukankan      html  css  js  c++  java
  • 使用case when then else end 的注意点

    SELECT
       case
        WHEN LOCATE('nocheck', t.A) > 0 && t.A is null || t.A = ''
        THEN t.op
       ELSE t.A
      END AS total ,
    t.op,
    t.A
     FROM (
    SELECT 
    a.value as A   ,
    c.value  AS C  ,
    ee.`value` AS EE ,
    c.value +  ee. value as op
    FROM
      ar_approve_entry_result a
    INNER JOIN ar_approve_entry_result c ON a.approve_result_uuid = c.approve_result_uuid
    AND c.entry_UUID = 'AREN17313'
    INNER JOIN ar_approve_entry_result ee on c.approve_result_uuid = ee.approve_result_uuid
    and ee.entry_UUID = 'AREN17314'
    INNER JOIN (
      SELECT
        b.uuid,
        b.pay_comfirm_uuid
      FROM
        ar_approve_result b
      WHERE
        b.sys_status = 1
      AND b.pay_comfirm_uuid = '168a9110776443ee9d9500a92be93a61'
      ORDER BY
        b.db_create_sys_time DESC
      LIMIT 0,1
    ) b ON a.approve_result_uuid = b.uuid
    WHERE
      a.sys_status = 1
    AND a.entry_UUID = 'AREN17292'
    ) as  t 
    SELECT
     a.value,
     SUM(b.`value`),
      CASE
        WHEN LOCATE('nocheck', a.VALUE) > 0 && a.`value` is null || a.`value` = ''
        THEN SUM(b.`value`)
       ELSE a.value
      END AS total
    FROM
     ar_approve_entry_result b
    INNER JOIN ar_approve_entry_result a ON a.approve_result_uuid = b.approve_result_uuid
    AND a.entry_UUID = 'AREN17292'
    WHERE
     b.approve_result_uuid = (
      SELECT
       uuid
      FROM
       ar_approve_result
      WHERE
       pay_comfirm_uuid = '168a9110776443ee9d9500a92be93a61'
      AND sys_status = 1
      ORDER BY
       datetime DESC
      LIMIT 0,
      1
     )
    AND b.entry_UUID IN ('AREN17313', 'AREN17314')

    locate(subStr,string) :函数返回subStr在string中出现的位置
    1. // 如果字符串 string 包含 subStr
    2. locate(subStr,string) > 0
      1. // 如果字符串 string 不包含 subStr
      2. locate(subStr,string) = 0
         在使用 case when    then  语句的时候:
        注意1: then 后面的字段,只能直接获得 , 不能通过 间接获得,比如上面的 一个相加的值,要想那些写,只能在 包一层,才能获得使用
  • 相关阅读:
    Linux下select调用引发的血案
    http://www.regexlab.com/zh/regref.htm
    TPL: 一个新的C++正则表达式(regex)库
    Kerneloops为Linux用户与开发人员搭建“oops”报告提交桥梁
    LINUX同步软件rsync原理
    Oops错误
    C03Java同步实践加强班第9周上机任务
    C03Java同步实践加强班第8周上机任务
    关于读书:读XX书是否为时过早,是否有意义
    C++程序设计第八周上机实践项目
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/11908502.html
Copyright © 2011-2022 走看看