`

decode与case when的区别

阅读更多
求和:sum(decode(sign(xingji - 6),'',h.real_count,1,h.real_count,0))
decode相较于case when,函数里面不能使用and连接多个条件,只能使用函数嵌套
例如:sum(decode(sign(xingji - 6),-1,decode(hh.quxian,18,h.real_count,19,h.real_count,20,h.real_count,24,h.real_count,34,h.real_count,35,h.real_count,0),0))

求和:sum(case when start_time = '24' then quantity else 0 end)
case when显得有些臃肿,但是在多个条件连接时比较方便,例如:sum(case when start_time = '24' and city_code = '010' then quantity else 0 end)

另说明:sum()函数用于求和,sign()函数用于返回参数是大于0,还是小于0或者等于0,一个例外是返回空:'';
例如:sign(1)--->1,sign(-1)--->-1,sign(0)--->0,sign(null)--->'';
分享到:
评论

相关推荐

    decode函数与case when 的妙用

    在阅读博客文章《decode函数与case when 的妙用》时,作者可能分享了一些具体的示例和使用技巧,帮助我们更好地理解和掌握这两种方法。通过学习和实践,我们可以将这些知识应用于日常的数据库操作,优化数据处理流程...

    Oracle_case_when_用法

    `CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ANSI 标准而更受推荐使用。 #### 二、基本结构 `CASE WHEN` 语句的基本结构如下: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ...

    Oracle用decode函数或CASE-WHEN实现自定义排序

    这里的`CASE-WHEN`语句与`DECODE`函数类似,也是将字段值映射到对应的排序值,然后根据这些值进行排序。`CASE-WHEN`的优点在于其结构更清晰,易于阅读,并且可以处理更复杂的条件判断。 3. **效率与优化** 虽然这...

    Oracle-Decode()函数和CASE语句的比较

    Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...

    oracle case when 语句的用法详解

    DECODE()函数是Oracle特有的,它可以作为CASE WHEN的替代品,但不支持复杂的条件: ```sql SELECT decode(sex, 'M', 'Male', 'F', 'Female', 'Unknown') FROM employees; ``` 尽管如此,DECODE()在某些情况下可能更...

    [数据库] Oracle使用CASE判断解决多值问题1

    为了简化这一过程,我们可以利用Oracle SQL的内置函数,如DECODE和CASE WHEN,直接在数据库层面进行处理。 首先,尝试使用DECODE函数。DECODE函数允许我们根据指定的条件返回不同的值。例如,DECODE(ZY_TYPE, '国家...

    oracle的decode函数

    - **高效性**:在某些情况下,`DECODE`函数可能比等效的`CASE WHEN`结构执行得更快。 ##### 注意事项: - **NULL处理**:需要注意的是,默认情况下,如果`input_value`为`NULL`,那么`DECODE`函数将返回`NULL`,...

    ORACLE 列转行 DECODE函数用法

    在实际工作中,你可能还需要结合其他SQL函数,如CASE WHEN或NVL,来进一步增强DECODE的功能。例如,当你需要处理可能的NULL值时,NVL函数可以提供一个默认值,防止因NULL而导致的结果异常。 总之,Oracle的DECODE...

    ORACLE DECODE函数在中国式报表统计查询中的组合条件实现

    然而,在面对复杂的多条件组合统计需求时,`DECODE`函数的应用可能会变得相对繁琐,这时往往更倾向于使用`CASE WHEN`语句或创建视图的方法来解决。不过,如果出于特定原因需要坚持使用`DECODE`函数,那么了解如何...

    mysql仿oracle的decode效果查询

    然而,MySQL 并没有内置的 `DECODE` 函数,但我们可以使用 `CASE WHEN` 语句来达到类似的效果。下面我们将详细探讨如何在 MySQL 中实现类似于 Oracle 的 `DECODE` 查询。 首先,让我们回顾一下 Oracle 中 `DECODE` ...

    一道java面试题 行列转换

    SELECT @sql = @sql + ', [' + cid + '] = SUM(CASE cid WHEN ''' + cid + ''' THEN mark ELSE NULL END) ' FROM (SELECT DISTINCT cid FROM sc) AS sc1; -- 添加总分、平均分和最高分的计算语句 SET @sql = @sql +...

    数据库基础 高级sql编程

    在高级 SQL 编程中,Case 与 Decode 是两个非常有用的函数,它们能够极大地提高数据处理能力和查询效率。 高级 SQL 编程在数据库开发技术中扮演着非常重要的角色,它能够极大地提高数据库的查询效率和数据处理能力...

    oracle sql 行列转换

    在给定的内容中,DECODE函数被用来实现与CASE语句相同的效果: ```sql SELECT seq, SUM(DECODE(jcxm, 1, zhi, 0)) AS 目标1, SUM(DECODE(jcxm, 2, zhi, 0)) AS 目标2, SUM(DECODE(jcxm, 3, zhi, 0)) AS 目标3 ...

    SQL经典面试题及答案

    - `SUM(CASE WHEN shengfu = '胜' THEN 1 ELSE 0 END)` 这部分使用了`CASE`语句对每行数据进行判断,如果是“胜”则返回1,否则返回0。然后通过`SUM()`函数对所有1求和,从而得到“胜”的总数。 - 同样的逻辑也适用...

    SQL学习笔记.docx

    CASE WHEN 函数的语法为 CASE WHEN condition THEN result [ WHEN condition THEN result ... ] ELSE result END,其中 condition 是条件,result 是执行的结果。 SIGN 函数 SIGN 函数是一个数学函数,用于返回一...

    Oracle与Mysql差异说明.doc

    3. DECODE 和 CASE WHEN:Oracle 的 DECODE 函数在条件判断中提供简洁的语法,但在 MySQL 中,你需要使用 CASE WHEN THEN END 结构来实现相同功能。 4. TO_DATE 和 STR_TO_DATE:Oracle 的 TO_DATE 函数将字符串...

    SQL等价改写优化案例精选

    然而,通过巧妙运用`CASE WHEN`语句,可以将这些子查询合并为一个更加简洁高效的查询语句,从而减少表扫描次数,提升查询性能。 原始SQL: ```sql SELECT DISTINCT ne_state.peer_id peer_name, to_char(ne_state....

    行列转,换行列转换

    `DECODE`函数类似于`CASE WHEN`语句,但在某些情况下更加简洁易读。 - **`DECODE(sc.cname,'Ӣ',sco.score,NULL)`**:如果`sc.cname`等于`'Ӣ'`,则返回`sco.score`的值,否则返回`NULL`。 - **`AVG(DECODE(sc....

Global site tag (gtag.js) - Google Analytics