select 带反引号的子句

select clause with backticks

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);

在 (cust_id... 之前有一个开始反引号,在 currency)?+.+ 之后有一个结束反引号,不知何故这里没有显示。

反引号是什么意思。这是否意味着在从第二个 table 中选择列时必须忽略反引号内大括号内的所有列?

此查询在 Hive on Mapr 安装中不起作用。

这些反引号用于 select 除了列出的反引号列之外的所有列。

要使用这些 REGEX 列规范,我们需要在配置单元会话中设置以下 属性

hive> set hive.support.quoted.identifiers=none;

这个反引号是什么意思?

`(cust_id|as_of_dt|pref.*|interest.*|incentive|currency)?+.+`

1.In regex "|" means OR operator

2.Exclude cust_id (or) as_of_dt(or) like 'pref%'(column name starts with pref and match any character after) (or) like 'interest%'(column name starts with interest and match any character after) (or) incentive (or) currency column names from the result set.

最终您的查询将得到来自 t1 table 的 cust_id 列以及来自 t1,t2 tables 的所有列符合上述要求。

有关配置单元中 REGEX 列规范的更多详细信息,请参阅 this link。