Sql regexp_replace配置单元中的正则表达式

Sql regexp_replace配置单元中的正则表达式,sql,hadoop,hive,regexp-replace,Sql,Hadoop,Hive,Regexp Replace,我的桌子上有几行。这行代码看起来像: Atribute | ---------------| B=10;MB=12;A=33| ---------------| MB=16;B=12;A=23| ---------------| A=10;MB=23;B=58| 等等 我只需要在“B=”之后获取数字。对于这个例子,我应该得到: 10 12 58 为了得到这个结果,我应该编写什么select查询?(查询不应与“MB=”和“B=”混淆) 第一组将尝试将字符串的开头与值“B”匹配,或将

我的桌子上有几行。这行代码看起来像:

Atribute       |
---------------|
B=10;MB=12;A=33|
---------------|
MB=16;B=12;A=23|
---------------|
A=10;MB=23;B=58|
等等

我只需要在“B=”之后获取数字。对于这个例子,我应该得到:

10
12
58
为了得到这个结果,我应该编写什么select查询?(查询不应与“MB=”和“B=”混淆)

第一组将尝试将字符串的开头与值“B”匹配,或将分号与值为“B”的字符串匹配

第一组将尝试将字符串的开头与值“B”匹配,或将分号与值为“B”的字符串匹配

hive> select regexp_extract('B=10\;AB=12\;B=33', '(\;|^)B=([0-9]*)', 2);
    OK
    10
    Time taken: 0.157 seconds, Fetched: 1 row(s)
    hive> select regexp_extract('MB=16\;B=12\;A=23', '(\;|^)B=([0-9]*)', 2);
    OK
    12
    Time taken: 0.11 seconds, Fetched: 1 row(s)
    hive> select regexp_extract('A=10\;MB=23\;B=58', '(\;|^)B=([0-9]*)', 2);
    OK
    58
    Time taken: 0.134 seconds, Fetched: 1 row(s)
    hive>