数据步中的PROC SQL

编程语言 2026-07-12

我想请教,在数据步骤中是否可以像这样包含一个PROC SQL:

data mydata; 
    set have; 

   proc sql;
    create table adrs01 as /*This line I suppose should be removed*/
    select *
    ......;
run;

如果可以,请您提供一个示例。

提前感谢。

解决方案

你可以通过来自 [SAS Packages Framework] 的 [sqlInDs] 包来实现这个:

libname packages "%sysfunc(getoption(work))";
filename spfinit url 'https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/refs/heads/main/SPF/SPFinit.sas';

%include spfinit;
%installPackage(sqlInDs);
%loadPackage(sqlInDs);

data foo;
    set %sql(select * from sashelp.cars);
run;

否则,你可以改用 proc ds2,直接在SET语句中编写FEDSQL:

proc ds2;
    data foo / overwrite=yes;
        method run();
            set {select * from libname.dataset};
        end;
    enddata;
    run;
quit;
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章