测试环境:

1.

功能说明:

测试语句:

select
    coalesce(
        case
            when upp_area_code in (
                '930',
                '931',
                '932',
                '933',
                '934',
                '935',
                '936',
                '937',
                '938',
                '939',
                '941',
                '943',
                '945',
                '947'
            ) then upp_area_code
            else '931'
        end,
        '999'
    ) upp_area_code
from
    gs_test.tb_mk_library_middle_B7_list_day
group by
    rollup(
        case
            when upp_area_code in (
                '930',
                '931',
                '932',
                '933',
                '934',
                '935',
                '936',
                '937',
                '938',
                '939',
                '941',
                '943',
                '945',
                '947'
            ) then upp_area_code
            else '931'
        end
    )

输出结果:

可以直接使用该函数,输出结果如下图所示:

nvl函数_函数nvl的结果是什么类型_函数nvl能不能走索引

输出结果:

在梧桐数据库输出结果如下图所示:

函数nvl的结果是什么类型_函数nvl能不能走索引_nvl函数

2.

功能说明:

测试语句:

select
  a.statis_month,
  -- 月份
  a.agent_id,
  -- 渠道编码
  a.channel_name,
  -- 渠道名称
  c.grid_code,
  -- 网格编码
  c.grid_name,
  -- 网格名称
  ifnull(b.rwd_type_one_id, '100013'),
  -- 一级指标编码
  ifnull(b.rwd_type_one_name, ' 其他 '),
  -- 一级指标名称
  a.rule_type,
  -- 二级指标编码
  ifnull(
      b.rwd_type_two_name,
      right(
          a.rwd_rule_type_name,
          length(a.rwd_rule_type_name) - 3
      )
  ),
  -- 二级指标名称
  a.count_money / 100 -- 指标金额         
from
  gs_test.tb_bds_cust_chl_tf_reward_cal_mon a
  left join gs_test.tb_bds_cust_chl_tf_reward_classify_mon b on a.rule_type = b.rwd_type_two_id
  left join gs_test.tb_bds_cfg_dimp_grid_channel_day c on a.agent_id = c.channel_id
limit
  20;

输出结果:

可以直接使用该函数,输出结果如下图所示:

nvl函数_函数nvl能不能走索引_函数nvl的结果是什么类型

输出结果:

在梧桐数据库输出错误,找不到该函数,如下所示:

function ifnull() does not exist

5.4 替代方案:

SELECT COALESCE(expression, replacement) AS result;

6 替代方案:

SELECT COALESCE(expression, replacement) AS result;

3.

功能说明:

测试语句:

select count(distinct access_num)  cnt_all,
         count(distinct case when user_state ='0' then access_num end) cnt_suc
     from gs_test.tb_bds_cust_ci_cm_realname_again_day 
     where 
        interval_hours='24'
         and check_state ='0' -- 二次实人认证状态
         and to_timestamp(should_stop_time,'yyyymmddhhmiss')<sysdate
         and isnull(ext_val_two,'') not in ('9001| 账务预销户用户只能进行账务开机 !','9001| 根据之前状态和操作码在状态机缓存中没有查询到对应的下一个状态 ! 请核实该用户是否重复停机!','9001| 只有正常用户和账务预销户用户才进行停开机 !')

输出结果:

可以直接使用该函数,输出结果如下图所示:

输出结果:

在梧桐数据库输出错误,找不到该函数,如下所示:

function isnull() does not exist

4.

功能说明:

测试语句:

select 
   a.grid_code as grid_code,     -- 网格编码
  sum(case when b.statis_day='20240601' then val_hb_ch_d_003 else 0 end)/
  nullif(sum(case when b.statis_day='20240531' then val_hb_ch_d_003 else 0 end),0)*100 as mbhlwl_cnt -- 魔百和离网率
 from gs_test.tb_bds_cfg_dimp_grid_channel_day a
 left join gs_test.tb_lb_home_magic_channel_day b 
 on a.channel_id=b.channel_id 
 group by a.grid_code order by a.grid_code;

输出结果:

可以直接使用该函数,输出结果如下图所示:

函数nvl能不能走索引_函数nvl的结果是什么类型_nvl函数

输出结果:

在梧桐数据库输出结果如下图所示:

函数nvl能不能走索引_nvl函数_函数nvl的结果是什么类型

5.

功能说明:

测试语句:

select 
count( case when nullifzero(mod(birth_month,10) - 6) is null then null else 1 end ) / count(1)  as ' 非六月出生占比 '
from 
(select * from bdcis.tb_cis_user_induser_day order by user_id limit 10000) a;

输出结果:

可以直接使用该函数,输出结果如下图所示:

输出结果:

在梧桐数据库输出错误,找不到该函数,如下所示:

function nullifzero() does not exist

5.4 替代方案:

SELECT NULLIF(expression, 0) AS result;

6 替代方案:

SELECT NULLIF(expression, 0) AS result;

6. nvl

功能说明:

测试语句:

select 
     max(obj_type)        ,-- 对象类型 1 省公司 2 市公司 3 分公司 4 网格  5 责任田     固定长度 1 位
     obj_id          ,-- 对象编码      动态长度   取地域编码
     max(obj_name)        ,-- 对象名称
     max(obj_path)   ,-- 对象路径
     sum(nvl(index_value,0)),-- 当月通信份额
     sum(nvl(index_value_last,0)) -- 去年 12 月通信份额
 from gs_test.tb_ado_index_c_txkh_mon_tmp26_1 
 group by   
     obj_id order by obj_id limit 20;

输出结果:

可以直接使用该函数,输出结果如下图所示:

nvl函数_函数nvl的结果是什么类型_函数nvl能不能走索引

输出结果:

在梧桐数据库输出结果如下图所示:

函数nvl能不能走索引_函数nvl的结果是什么类型_nvl函数

5.4 替代方案:

SELECT COALESCE(expression, replacement) AS result_nvl;
SELECT CASE 
         WHEN expression IS NOT NULL THEN value_if_not_null
         ELSE value_if_null
       END AS result_nvl2;

6 替代方案:

SELECT COALESCE(expression, replacement) AS result_nvl;
SELECT CASE 
         WHEN expression IS NOT NULL THEN value_if_not_null
         ELSE value_if_null
       END AS result_nvl2;

7. nvl2

功能说明:

测试语句:

select 
 oper_trunc_date
 ,count(1)
from
(select 
      case
        when months_between(trunc(date('20000224')),
                            to_date(substr(operator_iden_nr, 7, 8),
                                    'yyyymmdd')) / 12 < 16 then
         ' 经办人当前日期到证件生日不满足 16 岁 '
        else
         nvl2(operator_iden_nr,
              operator_iden_nr,
              ' 无经办人证件 ')
      end oper_trunc_date
 from  gs_test.tb_mk_16_age_check_tmp01 a,
     gs_test.um_subscriber_day d ) t1
group by t1.oper_trunc_date;

输出结果:

可以直接使用该函数,输出结果如下图所示:

函数nvl的结果是什么类型_函数nvl能不能走索引_nvl函数

输出结果:

在梧桐数据库输出结果如下图所示:

8.

功能说明:

测试语句:

select 
 sum(zeroifnull(case when user_level <=3 then null else 1 end)) / count(1) as ' 三级以上占比 '
from 
(select * from bdcis.tb_cis_user_induser_day order by user_id desc limit 10000) a;

输出结果:

可以直接使用该函数,输出结果如下图所示:

输出结果:

在梧桐数据库输出错误,找不到该函数,如下所示:

function zeroifnull() does not exist

5.4 替代方案:

SELECT COALESCE(expression, 0) AS result;

6 替代方案:

SELECT COALESCE(expression, 0) AS result;

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666

声明:1、本内容转载于网络,版权归原作者所有!2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!