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

wy851206 2013-07-08 01:44:48
select view_date,
client_page_id,
CASE WHEN (SUBSTRING(Client_Page_ID,1,8) = 'PRODUCT:'
OR SUBSTRING(Client_Page_ID,1,15) = 'MOBILE:PRODUCT:'
OR SUBSTRING(Client_Page_ID,1,16) = 'MOBILE2:PRODUCT:'
OR SUBSTRING(Client_Page_ID,1,16) = 'IPPRODUCTDETAIL:'
OR SUBSTRING(Client_Page_ID,1,16) = 'ADPRODUCTDETAIL:')
AND SPLIT(REVERSE(Client_Page_Id),'\\\(')[0] IS NOT NULL
THEN REVERSE(SPLIT(SPLIT(REVERSE(Client_Page_Id),'\\\(')[0],'\\\)')[1])
ELSE ''
END AS Client_Product_id
FROM PageView A
--where Client_Page_ID like '%PRODUCT%';
如上所示 ,我加了where条件后 就不会报错,但是不加就立马出问题了 。。。请教高手帮忙!!
...全文
1001 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wy851206 2013-07-08
  • 打赏
  • 举报
回复
已经搞定了。。substr需要保证length,截取的长度不能超出字段长度 ,否则就报错。。。这点好讨厌!

20,808

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧