`

用case when实现decode()函数的功能

    博客分类:
  • sql
阅读更多
原来的oracle

select t.ttid,o.organname,
        t.targettrain,
        t.creator,
        DateText(t.TTEnd) as DateRange,                               //这是自定义的函数
        decode(tg.finishedMode, 1, '已达标', '未达标') as passmode,
        decode(t.AllowView, 1, '允许', '不允许') as AllowView
        from tbTargetTrain t inner join tborgan o on o.organid=t.organid
        left join Tbttgrade tg on t.ttid = tg.ttid
    and tg.userid =1
    where (sysdate between t.TTBegin and t.TTEnd)
    and t.TargetType = '0'
    and exists (select 1 from vttuser01 where userid=1)
          and tg.finishedMode ='0' ;

order by tg.finishedMode desc Nulls last,t.datecreated desc; // Nulls last 只支持oracle待修改

---------------------------------------------------
翻译成mysql后

select t.ttid,o.organname,
       t.targettrain,
       t.creator,
       t.TTEnd as DateRange,
case tg.finishedMode when 1 then '已达标' else '未达标' end as passmode,

case t.AllowView when 1 then '允许' else '不允许' end as AllowView

from tbTargetTrain t inner join tborgan o on o.organid=t.organid
left join Tbttgrade tg on t.ttid = tg.ttid

and tg.userid =1
    where (sysdate() between t.TTBegin and t.TTEnd)
    and t.TargetType = '0'
   # and exists (select 1 from vttuser01 where userid=1)  因为有视图先搁置再议
          and tg.finishedMode ='0' ;

-------------------------------------------
decode(t.AllowView, 1, '允许', '不允许')
decode()的第一个参数是 别名是t表的一个字段,第二个是字段的值,如果是值是1,字段值换成'允许',如果不是1,就换成'不允许'。
分享到:
评论

相关推荐

    decode函数与case when 的妙用

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

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

    1. **DECODE函数** Oracle的`DECODE`函数是一种条件判断函数,它可以用于对数据进行简单的多值比较和返回。在自定义排序场景中,`DECODE`函数可以将不同的字段值映射到对应的排序值。以下是一个例子: ```sql ...

    oracle的decode函数

    ### Oracle的DECODE函数详解 #### 一、DECODE函数简介 在Oracle数据库中,`DECODE`函数是一种非常实用的条件判断函数,其功能类似于编程语言中的`IF`语句。通过比较输入值与一系列预设值,该函数能够根据匹配情况...

    ORACLE 列转行 DECODE函数用法

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

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

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

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

    ### ORACLE DECODE函数在中国式报表统计查询中的组合条件实现 #### 一、引言 在Oracle数据库中,`DECODE`函数是一种非常实用的功能,主要用于条件判断并返回不同的值。它经常被用来进行简单的条件分支处理,尤其...

    Oracle_case_when_用法

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

    oracle case when 语句的用法详解

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

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

    首先,尝试使用DECODE函数。DECODE函数允许我们根据指定的条件返回不同的值。例如,DECODE(ZY_TYPE, '国家特色专业', '国特', '省示范专业', '省示', '其他')。但是,这种方法并不适合本例,因为它不能有效地处理...

    oracle sql 行列转换

    无论是使用CASE语句、DECODE函数还是PIVOT操作符,关键在于理解数据结构和转换需求,选择最合适的工具来实现转换。这些技能对于高效处理和分析复杂数据集至关重要,尤其是在IT行业中,掌握这些技能将大大提高数据...

    Oracle高级操作函数学习笔记

    在提供的内容中,通过DECODE函数实现了工资的区间判断显示,使用CASE语句完成了加薪规则的计算,还演示了如何使用UNION、INTERSECT和MINUS进行集合操作。这些知识点展示了Oracle在数据处理方面的灵活性和高效性,...

    orcale数据库 行列互换

    在Oracle中,可以使用SQL的CASE语句或者DECODE函数来实现行转列。例如,在提供的描述中,我们看到一个例子是将学生的语文和数学分数从行转换为了列。 ```sql SELECT student AS '姓名', SUM(CASE name WHEN '语文'...

    Informatica_PowerCenter_V8函数功能使用指南.doc

    **Informatica PowerCenter V8 函数功能使用指南** 在数据集成和ETL(提取、转换、加载)领域,Informatica PowerCenter是一款强大的工具,它提供了丰富的函数库来处理各种数据处理任务。本指南将深入介绍V8版本中...

    SQL学习笔记.docx

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

    oracle练习_面试题

    1. 使用 CASE 函数和 DECODE 函数实现条件选择 Oracle 提供了两种函数来实现条件选择,即 CASE 函数和 DECODE 函数。CASE 函数可以根据条件选择不同的值,DECODE 函数可以根据条件选择不同的值或表达式。 示例: `...

    数据库基础 高级sql编程

    * Case 函数的语法结构:CASE expression WHEN value THEN result [WHEN value THEN result]* END * Decode 函数的语法结构:DECODE expression search result [search result]* * Case 与 Decode 的使用场景:数据...

    在employees表中查询出员工的工资,并计算应交税款

    另外,也可以使用DECODE函数来简化代码,实现相同的功能: ```sql SELECT last_name, salary, salary * DECODE( TRUNC(salary / 1000), 0, 0, 1, 0.1, 2, 0.15, 3, 0.2, 0.2 ) AS tax_amount FROM ...

    Oracle110个常用函数……PDF清晰版

    - 对于复杂的查询逻辑,可以使用子查询或嵌套函数来实现。 - 了解函数的性能特点,合理选择函数以提高查询效率。 - 利用函数组合解决更复杂的问题,例如通过组合日期函数计算两个日期之间的天数等。 通过以上知识点...

    Oracle函数大全

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。在Oracle函数大全中,我们涵盖了各种类型的功能,包括数学、字符串处理、日期时间操作、逻辑判断以及转换函数等,...

Global site tag (gtag.js) - Google Analytics