我有下面的查询实际上正在工作:
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语句不支持替换功能,我也应该以某种方式创建此表。在这种情况下,您能想到更合适的方法吗?
提前感谢。
尝试regexp_replace函数:
select regexp_replace(z.PRODUCT_TITLE,'\'','') --removes single-quote character