create语句不适用于替换功能

问题描述 投票:0回答:1

我有下面的查询实际上正在工作:

SELECT replace(z.PRODUCT_TITLE,'''','') as PRODUCTTITLE, z.NICK FROM table1 z WHERE NICK<=200

但是当我使用create语句执行相同的查询时,出现以下错误:

将表table2创建为

SELECT replace(z.PRODUCT_TITLE,'''','') as PRODUCTTITLE, z.NICK FROM table1 z WHERE NICK<=200

错误正在处理查询/语句。错误代码:40000,SQL状态:TStatus(statusCode:ERROR_STATUS,infoMessages:[* org.apache.hive.service.cli.HiveSQLException:错误编译语句时:FAILED:SemanticException行0:-1无效函数“替换”:17:16,org.apache.hive.service.cli.operation.Operation:toSQLException:Operation.java:400,org.apache.hive.service.cli.operation.SQLOperation:prepare:SQLOperation.java:187,org.apache.hive.service.cli.operation.SQLOperation:runInternal:SQLOperation.java:271,org.apache.hive.service.cli.operation.Operation:run:Operation.java:337 ......

因此,即使create语句不支持替换功能,我也应该以某种方式创建此表。在这种情况下,您能想到更合适的方法吗?

提前感谢。

hive hiveql create-table
1个回答
0
投票

尝试regexp_replace函数:

 select regexp_replace(z.PRODUCT_TITLE,'\'','')  --removes single-quote character
© www.soinside.com 2019 - 2024. All rights reserved.