精华内容
下载资源
问答
  • case when then else end用法 case分为简单函数搜索函数 case分为简单函数: CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' 搜索函数: CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE...

    case when then else end用法
    case分为简单函数和搜索函数

    case分为简单函数:
    	CASE sex
         WHEN '1' THEN '男'
         WHEN '2' THEN '女'
    
    搜索函数:
    		CASE WHEN sex = '1' THEN '男'
             WHEN sex = '2' THEN '女'
    		ELSE '其他' END
    

    decode用法

    SELECT DECODE('inParam','Param1','value1' ,'inParam','value2','Param3','value3') name FROM dual
    如果 inParam == Param1 , SELECT 得到的 name 显示为 value1
    如果 inParam == Param2 , SELECT 得到的 name 显示为 value2
    ...................
    都不相等,显示为''
    
    展开全文
  • sql语句里面case when choose when的使用区别 这本是一个简单知识,但在使用时还会模糊,特地记录: case when主要用于查询出字段上,进行结果区分; 例如: select sex, (CASE WHEN sex = '1' THEN '男'...

    sql语句里面的case when 和choose when的使用区别

    这本是一个简单的知识,但在使用时还会模糊,特地记录: case when主要用于查询出的字段上,进行结果区分;
    例如:

    select sex,
    (CASE 
    		WHEN sex = '1' THEN '男'
             WHEN sex = '2' THEN '女'
    ELSE '其他' END) as sexname
    from sys_student
    

    或者

    select sex,
    (CASE sex
    		WHEN   '1'  THEN  '男'
             WHEN  '2'  THEN  '女'
    ELSE '其他' END) as sexname
    from sys_student
    

    而choose when用于查询条件的判断,类似if ……else if

    SELECT * FROM TNotific 
    <where>
    	<choose>
    		<when test="method != null">
    			and Method = #{method,jdbcType=VARCHAR}
    		</when>
    		<when test="statusOfread != null">
    			and StatusOfread = #{statusOfread,jdbcType=VARCHAR}
    		</when>
    		<otherwise>
    			and BizCaseId = #{bizCaseId,jdbcType=VARCHAR}
    		</otherwise>
    	</choose>
    </where>
    

    或者

    select * from sys_student 
    where 1 = 1 
            <choose>
                <when test="status == 0">
                    and (status = 0 or status  is null or status  ='')
                </when>
                <when test="status  == 1">
                    and status =1
                </when>
                <otherwise>
                    and status = 2
                </otherwise>
            </choose>
    

    这里可以不要otherwise,都用when
    实例:

    使用case when 实现列转行:

    在这里插入图片描述
    这是表中数据,要转成的效果是:

    在这里插入图片描述

    直接上代码:(典型的列转行)

    SELECT 
    name,
    SUM(CASE SUBJECT WHEN '语文' THEN score end) as '语文',
    SUM(CASE SUBJECT WHEN '数学' THEN score end) as '数学',
    SUM(CASE SUBJECT WHEN '英语' THEN score end) as '英语' 
    FROM student_grade
    GROUP BY name
    
    展开全文
  • 最近写了一个sql,才发现有些情况不能用case ...(case ts.score when ts.score BETWEEN 9 and 10 then '优' when ts.score BETWEEN 8 and 8.9 then '良' when ts.score BETWEEN 7 and 7.9 then '中' else '差' END ...

    最近写了一个sql,才发现有些情况不能用case 列名 when

    (case ts.score when ts.score BETWEEN 9 and 10 then ''  when ts.score BETWEEN 8 and 8.9 then '' when ts.score BETWEEN 7 and 7.9 then '' else ''  END
            )  score_type,

    我发现这样写查出来的结果一直走的是else的条件

    后来百度了一下  发现这两种写法是有一定的差别的

    case具有两种格式。简单case函数和case搜索函数。

    --简单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部分将会被自动忽略。

    后来我用搜索函数这种写法写

    CASE 
        WHEN score BETWEEN 9 
        AND 10 THEN
        '' 
        WHEN score BETWEEN 8 
        AND 8.9 THEN
        '' 
        WHEN score BETWEEN 7 
        AND 7.9 THEN
        '' ELSE '' 
    END 

     

    转载于:https://www.cnblogs.com/NCL--/p/10978280.html

    展开全文
  • case when , SumCount的区别

    千次阅读 2018-02-09 19:40:47
    case when 语法结构:CASE WHEN Condition THEN result[ WHEN Condition THEN result ]THEN result #其他END #结束表数据如下:看看俩个sql 语句其相应结果:SUM:SELECT SUM(case WHEN age &...

    case when 的语法结构:


    CASE WHEN  Condition  THEN  result

    [ WHEN  Condition   THEN result ]

    THEN   result         #其他的

    END                       #结束


    表数据如下:



    看看俩个sql 语句和其相应的结果:

    SUM:

    SELECT SUM(case WHEN age < 20 THEN 1 ELSE 0 END ) AS mini, SUM(case WHEN age > 20 AND age < 60 THEN 1 ELSE 0 END) AS high  FROM person 

    查询结果为:


    COUNT:

    SELECT COUNT(case WHEN age < 20 THEN 1 ELSE 0 END ) AS mini, COUNT(case WHEN age > 20 AND age < 60 THEN 1 ELSE 0 END) AS high  FROM person 

    查询结果为:


    这俩条 sql 语句 case when 的意思是 

    对满足年龄 < 20 条件的返回 1,否则返回 0;    对满足年龄 > 20 且 < 60的返回 1,否则返回 0。

    但结果却不一致。         

    SUM 是对结果集的相加求和;

    COUNT 是对结果集的统计数目。

    所以 SUM 的值是 1,2; 而 COUNT 的值都是 4,即所有记录。



    展开全文
  • case when和decode用法与区别

    万次阅读 2014-04-08 00:17:21
    一、case when ...case when 类似我们if ...else ,判断语句 语法如下: CASE expr WHEN expr1 THEN return_expr1  [WHEN expr2 THEN return_expr2  ...  WHEN exprn THEN return_exprn  EL
  • select * from t_capital_detail c where c.order_code=‘510000011093’ ...case when id=3798143 then sum(batch_no) end from t_capital_detail c where c.order_code=‘510000011093’ su...
  • Oracle中CASE When:SELECT LogID,UserID,LogTime,Url,Description,(casewhen OperateType = 0 then '新增'when OperateType=1 then '修改'else '删除'end ) OperationNameFROM LOGOracle中Decode():·含义...
  • 一、case when ...case when 类似我们if ...else ,判断语句 语法如下: CASE expr WHEN expr1 THEN return_expr1  [WHEN expr2 THEN return_expr2  ...  WHEN exprn THEN return_exprn  EL
  • XXX是查询语句。在写代码时候遇到这个问题,看到是写case when 这种方式,不知道为什么,是效率或者什么方面有影响吗?
  • 在Mockito中打桩(即stub)有两种方法when(...).thenReturn(...)doReturn(...).when(...)。这两个方法在大部分情况下都是可以相互替换,但是在使用了Spies对象(@Spy注解),而不是mock对象(@Mock注解)情况下...
  • case,when,then,else,end有两种格式:简单case函数,case搜索函数。 原表格式如下: 使用简单case函数查询结果: 使用case搜索函数查询结果: 两种函数区别:这两种方式,可以实现相同功能。...
  • MySQL之case when then用法

    2020-05-31 15:51:44
    1、case简单写法 case type when ‘1’ then ‘小超市’ when ‘2’ then '大商场’ else ‘其他’ end ...3、 case简单写法case搜索函数区别: 第一种case后面直接跟字段,第二种先判断,最后end后面跟
  • 11.24 又是努力学习的一天 今天汲取了这样一句话,编程逻辑思维并不是你创造的而且你看到的变成你的。 今天学到的就是sum与count的区别!...case when 条件1 then 满足条件1条件二 else不满足条件1则
  • case when类似于python中if else语句,但经过最近一段时间使用,我觉得其实更像是完成了一种关系映射。接下来先说语法吧,自己也说不太清楚,先总结看看吧。以下表为例。 语法一 case when 列名condition ...
  • 简单Case函数Case搜索函数的区别 Case具有两种格式。简单Case函数Case搜索函数。 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE ...
  • LIKE是普通LIKE,RLIKE是高级LIKE,即适用于正则。 例1: [查询sql] SELECT ... when a rlike '^[0-9]+$' then a else '-' end col1, case when a LIKE '[0-9]+' then a else '-' ...
  • <p>When executing a <code>SELECT</code> query, and storing the results in a struct with a field of type <code>interface, the resulting type differs between <code>int64</code> and []uint8</code> ...
  • <p>This question already has an answer here: ...<p>When I have previously used the axios library the server functions have always explicitly returned JSON and not echoed it. </div>
  • IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数值,如果不为 NULL 则返回第一个参数值。 IFNULL() 函数语法格式为:IFNULL(expression, alt_value... '' then A else B end from...
  • dangerous when using a large cache. Just make sure the memcached machines don't swap. memcached does non-blocking network I/O, but not disk. (it should never go to disk, or you've lost the whole point...
  • decode与case的区别

    2010-03-02 17:27:00
    本文讲述了Oracle-Decode()函数CASE语句的比较。 首先,举2个简单的例子,简单对比一下这2者的区别。 1.CASE语句:SELECT CASE SIGN(5 - 5) WHEN 1 THEN Is Positive WHEN -1 THEN Is Negative
  • 【sqlserver】: sqlserver 认为 null 最小。 升序排列:null 值默认排在最前。...要想排后面,则:order by case when col is null then 1 else 0 ...要想排在前面,则:order by case when col is null then 0 e
  • man tailf 结果如下: ... tailf will print out the last 10 lines of a file and then wait for the file to grow. It is similar to tail -f but does not access the file when it is not growing. This has th...
  • SELECT 'Price Category' = CASE WHEN price IS NULL THEN 'Not yet priced' WHEN price &lt; 10 THEN 'Very Reasonable Title' WHEN price &gt;= 10 and price &lt; 20 THEN 'Coff...
  • //会话对象,用于规则引擎交互 KieSession kieSession = kieClasspathContainer.newKieSession(); //构造订单对象,设置原始价格,由规则引擎根据优惠规则计算优惠后价格 Order order = new Order(); /...
  • When i intialise object of the class then unified constructor call why not normal constructor. <pre><code><?php class test { function __construct() { print "In BaseClass constructor "; } ...
  • <p>When I trying to do it with Go, first part works fine: cookie "yandexuid" comes and I attach it to next request. But second request don't returns cookies. Server respond's me with redirect page ...
  • select case when [b]sc_amount is null [/b]then 0 else sc_amount end from salechance; select [b]isnull[/b](sc_amount,0) from salechance; 运行结果: 1000 0 700 6000 3000 7000 6700 25000 ...

空空如也

空空如也

1 2 3 4 5
收藏数 91
精华内容 36
关键字:

when和then的区别