配置单元:选择所有列排除两个

时间:2019-02-21 06:20:24

标签: sql hive

如何在配置单元中选择所有排除列“ date”和“ cst_id”的列?

2 个答案:

答案 0 :(得分:1)

尝试以下-

对于单个会话-set hive.support.quoted.identifiers=none;

select `(date|cst_id)?+.+` from myTable.

请参阅quotedIdentifiers,以获取有关使用正则表达式进行蜂巢选择的更多信息

答案 1 :(得分:0)

hive手册页上的可接受答案和正则表达式示例存在缺陷。如果要排除两个列dayday_hour,则(day|day_hour)?+.+仍将与day_hour列匹配。这是因为正则表达式引擎渴望使用|。尽管将顺序更改为(day_hour|day)?+.+可以解决此问题,但更好的方法是使用负前瞻(?!(day|day_hour)$).+