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>