问题现象
同样的 sql 在 gccli 中执行不报错,但是在企业管理器中执行报错。
gccli -ugbase -p -Dtest
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 语句中对投影列加不同列别名,以避免投影列列名重复,规避问题。