今天在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去掉之后,在查询就对了