Map不存在字段

 如:select A.user_id from A inner join B on A.user_id = B.user_id
join 字段包含null 则关联不上,则只能关联上

-- 如果stay_time字段不存在,就是null值(is null)
-- null值是不能与其他值进行比较的,所以这种情况的结果是没有记录
-- 没有记录
select
    *
from
    dm_autocar.autocar_mds_event_detail
where
    date = '${date}'
    and event in ('stay_page_pageid','stay_page','stay_search_result')
    and params['stay_time'] <= (1000* 3600 * 2)

-- 如果Map类型里面的字段不存在,查出来的值是null 等同于 is null
select
    '${date}' as date,
    '无限制' as category,
    count(*) as pv     -- 23067750
from
    dm_autocar.autocar_mds_event_detail
where
    date = '${date}'
    and event in ('stay_search_result')
    and params['stay_time'] is null

union all 

select
    '${date}' as date,
    '不包含字段为null限制' as category,
    count(*) as pv     -- 23067750
from
    dm_autocar.autocar_mds_event_detail
where
    date = '${date}'
    and event in ('stay_search_result')
    and params['stay_time'] is null
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务