问题现象
同样的 sql 在 gccli 中执行不报错,但是在企业管理器中执行报错。
create table t1(c1 int,c2 varchar(10)); create table t2(c1 int,c2 varchar(10)); 企业管理器中执行 sql:
select * from t1 left join t2 on t1.c1=t2.c2; 报错
select * from (select * from t1 left join t2 on t1.c1=t2.c2 ) t limit 0,1000 错误:Duplicate column name 'c1'
原因分析
报错 sql 在企业管理器中执行时,默认改为 select * from (原 sql) limit 下发执行。
下发到 server 的语句子查询中投影列列名重复,发生列名重复报错,此为当前产品 限制。
解决方法
在 sql 语句中对投影列加不同列别名,以避免投影列列名重复,规避问题。
博客指出同样的 SQL 在 gccli 中执行正常,在企业管理器中执行报错。原因是企业管理器默认以 select * from (原 sql) limit 下发执行,导致子查询投影列列名重复。解决方法是在 SQL 语句中对投影列加不同列别名,避免列名重复。
478

被折叠的 条评论
为什么被折叠?



