hive查询数据时列数据错乱和错位

今天在hive里查数据的时候发现一个有趣的问题:

先上sql:

SELECT DISTINCT
	a.mobile,
	concat_ws('#','8',cast(22222 AS string )) AS extend,
	10 AS batchNo,
	0 AS sendNo,
	SUBSTR( IF ( d.wechat_name IS NULL, d.learn_number, d.wechat_name ), 1, 5 ) AS wechatName 
FROM
	ods_kcl_mobile_addition_data_1h_all a
	LEFT JOIN ods_kcl_customer_1h_all d ON a.mobile = d.mobile 
WHERE
	NOT EXISTS ( SELECT 1 FROM ods_kcl_customer_1h_all b JOIN ods_kcl_live_entry_record_1h_all c ON b.id = c.customer_id WHERE a.mobile = b.mobile ) 
	AND a.mobile IS NOT NULL 
	AND d.wechat_name IS NOT NULL 
	limit 100;

 结果:

问题:我在sql中batchno给的是默认值10,wechatname应该是字符数据,但是结果显示我的batchno的结果是wechatname,而wechatname这一列的值变成了10。

1.如果把distinct去掉之后,在查询就对了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值