ORA-00957: 重复的列名

在SQL查询中遇到OR-00957错误?本文分享了如何通过为重复列名添加别名来避免冲突,让你成功将查询结果插入新表。实例演示了从三个表联查并创建新表的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.一开始看到这个报错,就是去看自己查询中涉及到的列名有没有重复的,查看了一番后,没有重复的列,百度后没找到想要的结果,但得到了启发,抱着试一试的心态,收获了惊喜,问题得到解决。解决办法把其中相同的列起别名,在执行插入表的操作,具体往下看。

2.初始的语句:

单独执行这个语句不会报错

select a.phone_num,a.cust_id,a.user_id,a.offer_id,a.order_name,
a.create_date,a.order_date,a.delivery_date,b.user_id_b  ,c.user_id
 from linda_resultA a,
linda_resultB b,
linda_resultC  c,
 where a.user_id=b.user_id_b  and b.user_id_a=c.user_id ;

3.在查询的同时把查询到的数据放到新建的表里

执行这个语句:则报错ORA-00957: 重复的列名

create table linda_result as select a.phone_num,a.cust_id,a.user_id,a.offer_id,a.order_name,
a.create_date,a.order_date,a.delivery_date,b.user_id_b  ,c.user_id,
 from linda_resultA a,
linda_resultB b,
linda_resultC  c,
 where a.user_id=b.user_id_b  and b.user_id_a=c.user_id ;

解决办法:查询中出现了a.user_id,c.user_id,再查询插入表的时候,给其中一个字段起别名就不会报错了。

create table linda_result as select a.phone_num,a.cust_id,a.user_id,a.offer_id,a.order_name,
a.create_date,a.order_date,a.delivery_date,b.user_id_b  ,c.user_id c_user_id,
 from linda_resultA a,
linda_resultB b,
linda_resultC  c,
 where a.user_id=b.user_id_b  and b.user_id_a=c.user_id ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值