如何在Hive SQL中选择具有相同前缀(开头)或后缀(结尾)或中间关键字(包括)的列

Cou*_*000 1 regex hive hive-query

编辑1:注意,我知道我们中有些人会问为什么不以不同的属性列出信息的不同部分,以便我可以查询关系数据库。实际情况与下面列出的示例不同,此处仅为方便起见使用了变量名。

编辑2:为了减少数据库设计的混乱,我在示例中更改了变量名称。

在Hive查询中,我正在寻找一种选择具有相同前缀或相同后缀或在同一表的变量名称中间包含相同关键字的列的方法。

这是一个示例:我有一个这样的变量列表:

a_A_1, a_A_2, a_B_1, a_B_2,
b_A_1, b_A_2, b_B_1, b_B_2
Run Code Online (Sandbox Code Playgroud)

练习1 我想选择所有以'a'开头的属性。

练习2 我想选择所有以'1'结尾的属性。

练习3 我想选择所有属性,包括'B'

提前非常感谢!

Cou*_*000 5

幸运的是,我找到了一种方法, 希望它可以使许多寻求相同答案的人受益。

首先,您需要在Hive环境中运行此设置:

set hive.support.quoted.identifiers=none;
Run Code Online (Sandbox Code Playgroud)

请参阅下面的解决方案

练习1

select `a.*` from test_table;
Run Code Online (Sandbox Code Playgroud)

练习2

select `.*1$` from test_table;
Run Code Online (Sandbox Code Playgroud)

练习3

select `.*B.*` from test_table;
Run Code Online (Sandbox Code Playgroud)