Hive SQL 问题总结分享

问题:mismatched input 'as' expecting <EOF>(line 24, pos 13)

group by concat(from_unixtime(unix_timestamp(odr.pt,'yyyyMMdd'),'yyyy-MM-dd'),' 00:00:00'),

         nvl(dc.province_id, -99),

        CASE

            WHEN dc.province_name is null THEN nvl(dc.province_name, '未知')

            WHEN dc.province_name = '' THEN '未知'

        END as province_name,

-------------^^^

解决方法:去掉group by 语句后面的 as关键字



问题:字段为空null或""的处理方法

字符类型空字符分null和"",null通过is null进行判断,

  ""通过length()=0判断

解决方法:

select nvl(province_id, -99) as province_id, 

           CASE 

                 WHEN province_name is null   THEN '未知' 

                 WHEN length(province_name) = 0   THEN '未知' 

                 ELSE province_name 

           END as province_name,

..........

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容