mysql中实现 orcale的decode函数

一:业务场景

    一次在用union all 查询多个表中需要对多个表的数据汇总,同时还要区份各个表的数据来源,就用到下面我们说的那两个方法

 一:先说orcale的翻译方法

    orcale中的decode()函数给我们提供了很方便的翻译

       select    DECODE(字段名称a,val,翻译1,翻译2)  as test FROM  表名称 ;解释:如果字段a的值是val,那么翻译后的值是翻译1,否则值为翻译2

       select  DECODE(字段名称a,val1,翻译1,val2,翻译2,......) as test FROM  表名称; 解释:如果字段a的值是val1,那么翻译后的值是1,如果字段a的值是val2,那么饭以后的值是2,一次类推


二:MySQL的翻译方法

    由于mysql没有decode()函数,因此我们只能自己手动写

    select  

        case

        when  字段a = val1  then  翻译1

        when  字段a = val2  then  翻译2

        when  字段a = val3  then  翻译3

        end  as   test

        from 表名称

        解释:如果字段a的值是val1,那么翻译后的值是翻译1,一次类推


三:给查询虚拟字段设置默认值

    使用场景: 查询时候需要设置一个虚拟字段来标识状态,同时还要给这个状态设置一个虚拟值

        select  "D" as  虚拟字段  from  表名称

你可能感兴趣的:(数据库)