求助 :hive sql 的 case when如果对应的when条件都不满足时报错!

[复制链接]
查看11 | 回复1 | 2021-1-27 06:11:02 | 显示全部楼层 |阅读模式
selectview_date,
client_page_id,
CASEWHEN(SUBSTRING(Client_Page_ID,1,8)='PRODUCT:'
ORSUBSTRING(Client_Page_ID,1,15)='MOBILE:PRODUCT:'
ORSUBSTRING(Client_Page_ID,1,16)='MOBILE2:PRODUCT:'
ORSUBSTRING(Client_Page_ID,1,16)='IPPRODUCTDETAIL:'
ORSUBSTRING(Client_Page_ID,1,16)='ADPRODUCTDETAIL:')
ANDSPLIT(REVERSE(Client_Page_Id),'\\\(')[0]ISNOTNULL
THENREVERSE(SPLIT(SPLIT(REVERSE(Client_Page_Id),'\\\(')[0],'\\\)')[1])
ELSE''
ENDASClient_Product_id
FROMPageViewA
--whereClient_Page_IDlike'%PRODUCT%';
如上所示,我加了where条件后就不会报错,但是不加就立马出问题了。。。请教高手帮忙!!

分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:11:02 | 显示全部楼层
已经搞定了。。substr需要保证length,截取的长度不能超出字段长度,否则就报错。。。这点好讨厌!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行