Select
t1.cust_id,
`(cust_id|as_of_dt|pref.*|interest.*|incentive|currency)?+.+`
from
TAB1 t1
left join TAB2 t2 on (t1.key1 = t2.key1) and (t1.key2 = t2.key2);
在(客户id。。。结束后倒勾 currency)?+.+
不知怎的,它没有在这里展出。
背勾是什么意思。这是否意味着在从第二个表中选择列时,必须忽略背面记号中花括号内的所有列?
此查询在mapr安装的配置单元中不起作用。
1条答案
按热度按时间yxyvkwin1#
这些反标记用于选择除列出的反标记列以外的所有列。
要使用这些regex列规范,我们需要在配置单元会话中设置以下属性
hive>set hive.support.quoted.identifiers=none;
这是什么意思?
1.在正则表达式中“|”表示或运算符
2.从结果集中排除cust_id(or)as \u dt(or)like'pref%'(列名以pref开头并匹配后面的任何字符)(or)like'interest%'(列名以interest开头并匹配后面的任何字符)(or)entive(or)currency列名。
最后,您的查询将得到t1表中的cust\u id列以及t1、t2表中与上述要求不匹配的所有列。
有关更多详细信息,请参阅有关配置单元中regex列规范的链接。