从多列中删除字符串字符

时间:2018-03-21 04:39:37

标签: hive hiveql

我有一张这样的表:

YSQ     YSQR     ys     Y
 12     12       55     11
 abc    22       qrs     2
 #      def      @       aaa

我需要从单个配置单元查询中的所有列中删除所有字符串字符和特殊字符,如下所示:

YSQ   YSQR     ys     Y
12    12       55     11
11    22       33     2
2     22       11     33

我尝试了一个查询,但它没有按预期工作:

select YSQ,YSQR,YS,Y from Sales_table2 where (YSRQTYPCS not rlike '[^0-9.-]') or YTTLSVAL not rlike '[^0-9.-]' or YSRTLSVAL not rlike '[^0-9.-]' or YSQTYPCS not rlike '[^0-9.-]'")

1 个答案:

答案 0 :(得分:0)

要删除所有字符串字符和特殊字符,必须使用REGEXP_REPLACE函数。

用于删除字符串字符

REGEXP_REPLACE(YSQ, '[a-zA-Z]+', '') 

OR

您还可以使用以下内容删除任何非数字字符:

select REGEXP_REPLACE(YSQ, '[^0-9]', '') as YSQ from Sales_table2