楼主: Kevin于小豆
3539 7

调用SQL左连接后输出数据少了2列 [推广有奖]

  • 0关注
  • 0粉丝

高中生

40%

还不是VIP/贵宾

-

威望
0
论坛币
765 个
通用积分
0.4500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
212 点
帖子
6
精华
0
在线时间
49 小时
注册时间
2015-5-13
最后登录
2022-8-11

楼主
Kevin于小豆 发表于 2016-10-25 11:09:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
代码如下:

proc sql;
create table app_data_new as
select a.* ,b.*
from APP_DATA_Yuqi a left join APP_DATA_Shenhe b
on a.id_no=b.id_no;
quit;


a和b两个表中第一列均为id_no,a中有3列,b有6列,按理来说合并后应该是有8列的,但结果却是b表的第2 3列被a表的2 3列覆盖了,这是为什么?在线等。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:sql left join proc sql Select Create

沙发
prince315 在职认证  发表于 2016-10-25 11:29:13
是否有数据样例?程序本身看不出问题所在。简单猜测你所谓的8行的数据,是否是full join的结果,而不是left join?

藤椅
Kevin于小豆 发表于 2016-10-25 12:17:29
prince315 发表于 2016-10-25 11:29
是否有数据样例?程序本身看不出问题所在。简单猜测你所谓的8行的数据,是否是full join的结果,而不是left ...
谢谢谢谢,我找到原因了,导入数据后虽然显示的是原来的列标签,但点开那个列名称之后会发现 name:_COL2,同样的2个表都是这个名字,所以会覆盖掉,重新命名一下列名称就搞定了

板凳
Kevin于小豆 发表于 2016-10-25 12:21:29
prince315 发表于 2016-10-25 11:29
是否有数据样例?程序本身看不出问题所在。简单猜测你所谓的8行的数据,是否是full join的结果,而不是left ...
其实就是犯了一个很傻的错误,SAS不能识别汉字形式的列标签,英文的就可以

报纸
prince315 在职认证  发表于 2016-10-25 12:28:33
Kevin于小豆 发表于 2016-10-25 12:21
其实就是犯了一个很傻的错误,SAS不能识别汉字形式的列标签,英文的就可以
小错误都会犯的,努力排查错误也是种能力!

地板
l1i2n3i4n5g 在职认证  发表于 2016-10-25 12:35:05
这段程序的结果应该是9列吧

7
Kevin于小豆 发表于 2016-10-25 13:17:10
l1i2n3i4n5g 发表于 2016-10-25 12:35
这段程序的结果应该是9列吧
id_no是连接的条件列,合并后只保留左表的id_no

8
Kevin于小豆 发表于 2016-10-25 13:18:06
prince315 发表于 2016-10-25 12:28
小错误都会犯的,努力排查错误也是种能力!
看来不管什么软件,列标签还是都改为英文的好,都能识别,哈哈

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 19:57