SAS:DATA STEP与PROC SQL

and*_*_sz 0 sas

有谁知道为什么proc sql不能在SAS/DATA STEP中使用

例如,

DATA test;
set lib.table;
  PROC SQL;
   ...
  QUIT;
  ...some operators...
RUN;
Run Code Online (Sandbox Code Playgroud)

在PROC SQL..RUN之后; on运算符未处理.

谢谢你的解释.

Jon*_*nts 7

因为像所有PROC一样 - 它在/生成数据集 - 它在数据步骤中没有意义.您可以使用SQL的FROM子句指定输入(类似于datastep set <setname>),并且可以使用SQL CREATE TABLE(类似于data <setname>)创建新数据集作为输出.

proc sql;
    create table lib.new_table as select * from lib.table;
run;
Run Code Online (Sandbox Code Playgroud)

没有什么可以阻止你在适当的情况下使用视图混合一个的功能,例如:

data lib.new_set_view / view=lib.new_set_view;
    set lib.some_set;
    /* do normal operations and output's */
run;

proc sql;
    create table lib.other_set as select * from lib.new_set_view where something='whatever';
quit;
Run Code Online (Sandbox Code Playgroud)