如何在SAS中使用PROC SQL实现3张及以上同结构表的纵向行绑定
问题原因
你的PROC SQL运行失败的核心是语法错误:除了第一张表的查询语句外,剩下3张表的select *后都遗漏了必填的from关键字。另外代码中额外包裹的括号属于冗余内容,可直接删除。
修正后的PROC SQL代码
PROC SQL; create table Table_final AS select * from Table1 union all select * from Table2 union all select * from Table3 union all select * from Table4 ; QUIT;
union all不会去重,完全符合纵向行绑定的需求,和你最初的预期一致。
更适配SAS场景的替代方案
因为你已经确认4张表的字段、类型、排列顺序完全一致,用DATA步的SET语法实现纵向合并更简洁,大数据量下的运行效率也更高:
data Table_final; set Table1 Table2 Table3 Table4; run;
注意事项
两种方法默认都是按字段位置对齐匹配,如果你后续调整过任意表的字段顺序,建议显式列出要合并的字段名,避免出现字段错位的问题。
内容的提问来源于stack exchange,提问作者Seydou GORO
相关产品推荐
相关产品推荐

