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