测试环境:
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
)
输出结果:
可以直接使用该函数,输出结果如下图所示:
输出结果:
在梧桐数据库输出结果如下图所示:
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;
输出结果:
可以直接使用该函数,输出结果如下图所示:
输出结果:
在梧桐数据库输出错误,找不到该函数,如下所示:
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;
输出结果:
可以直接使用该函数,输出结果如下图所示:
输出结果:
在梧桐数据库输出结果如下图所示:
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;
输出结果:
可以直接使用该函数,输出结果如下图所示:
输出结果:
在梧桐数据库输出结果如下图所示:
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;
输出结果:
可以直接使用该函数,输出结果如下图所示:
输出结果:
在梧桐数据库输出结果如下图所示:
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