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

时间:2018-03-06 14:56:16

标签: 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

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

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

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

提前多多谢谢!

1 个答案:

答案 0 :(得分:3)

幸运的是I found a way to do so我希望它能让许多其他正在寻找相同答案的人受益。

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

set hive.support.quoted.identifiers=none;

见下面的解决方案

练习1

select `a.*` from test_table;

练习2

select `.*1$` from test_table;

练习3

select `.*B.*` from test_table;