SemanticException Line 0:-1 Argument type mismatch 'TOK_NULL': Argument type "struct<col1:int,col2:string,col3:array<struct<project_name:string,participation:int>>,col4:void>" is different from preceding arguments. Previous type was "struct<col1:int,col2:string,col3:array<struct<project_name:string,participation:int>>,col4:array<string>>"
时间: 2023-06-17 07:02:46 浏览: 702
这个错误是因为你在某个查询中,使用了两个不同的表结构。具体来说,你在一个表中使用了结构A,然后在另一个表中使用了结构B,而这两个结构不兼容。
错误信息中提到了两个表的结构,你需要比较它们之间的差异,找出哪个字段的类型和结构不一致。在这个例子中,第一个表的col4字段是void类型,而第二个表的col4字段是array<string>类型,这就导致了类型不匹配的错误。
为了解决这个问题,你需要确保在查询中使用的所有表都具有相同的结构。或者,你可以使用CAST函数显式地将字段转换为正确的类型。
相关问题
Error while compiling statement: FAILED: SemanticException [Error 10016]: Line 1:31 Argument type mismatch 'deptno': Argument 4 of function CONCAT_WS must be "string or array<string>", but "int" was found.
这个错误是因为在使用 CONCAT_WS 函数时,其第四个参数应该是字符串或字符串数组类型,但是你传递了一个整数类型的参数。请确保将参数转换为字符串类型后再传递给 CONCAT_WS 函数。你可以使用 CAST 函数将整数类型参数转换为字符串类型,像这样:
```
SELECT CONCAT_WS('-', empno, ename, job, CAST(deptno AS STRING)) AS emp_details FROM employees;
```
这里我们将 deptno 参数使用 CAST 函数转换为字符串类型,以便正确地传递给 CONCAT_WS 函数。
阅读全文