赞
踩
HiveSQL的CASE-WHEN的使用
case when 条件 then 条件为真时的值 else 条件为假时的值 end
- SELECT
- DATE(DATE_SUB(A.CREATE_TIME, -CAST(B.CYCLE AS INT))),
- DATE(DATE_SUB(A.CREATE_TIME, -CAST(B.CYCLE AS INT))),
- FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd'),
-
- CASE WHEN
- DATE(DATE_SUB(A.CREATE_TIME, -CAST(B.CYCLE AS INT))) <= FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd')
- THEN DATE(DATE_SUB(A.CREATE_TIME, -CAST(B.CYCLE AS INT)))
- ELSE NULL
- END AS TIME_EXIT
-
- FROM ODS.S02_ACT_WEIXINVC A
- INNER JOIN ODS.S02_ACT_WYH_PRODUCT B
- ON A.PRODUCT_ID = B.ID
- AND A.PRODUCT_ID IN
- (1881560122394597, 1881560122394596, 1881560122394598) ;
如果只是简单地判断是否为空,赋个默认值用 nvl 函数:
- select nvl(cast(mem.mb_last_login_time as String),'1900-01-01 00:00:00')
- FROM ods.s02_member mem where mid = 1816945285831115;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。