HIVE:如果存在则替换字符串/模式,否则不执行任何操作

时间:2016-02-18 23:24:39

标签: hadoop hive apache-spark-sql hiveql

我有一张带有身份证,姓名,年龄的表A.

> id       name    age
> {20}    Joan     12 
> 3       James    12 
> 12       Jill   12
> {54}     Adam    12 
> {10}     Bill    12

我需要移除{}周围的'id'字段。 我试过这个:

  

翻译(regexp_extract(id,'([^ {] )([^}] )',2),'{','')

可以正常工作,但对于带有NO {}的值返回null。

id
3
12

有没有办法让输出为???

id
20
3
12
54
10

2 个答案:

答案 0 :(得分:1)

你可以使用regexp_replace udf来删除" {}"喜欢:

select regexp_replace(id, '\\{|\\}','');

答案 1 :(得分:0)

请尝试以下选择声明:

select regexp_replace(col1,'[{}]','') as replaced,col2,col3 from table_name;