簡體   English   中英

SAS SQL 根據宏變量結果創建表

[英]SAS SQL create table depending on macro variable result

我正在努力根據宏變量結果在 proc sql SAS 中創建一個新表。

1)我想檢查是否存在必要的表。

2)如果它存在,那么我想用給定的參數創建一個新表。

3)如果它不存在,我想創建一個具有不同參數的新表。

我想我知道如何檢查表是否存在(日志結果中的 0 或 1):

        %let tex1 = %sysfunc(exist(Base.pk_&monthP1));   
        %put tex1 = &tex1.;

但我不知道如何將此結果實現到 proc sql 語句中。

我需要這樣的東西:

        proc sql;
        create table test as
        select case when &text1 = 0 then select ...
        else 
        select ...
        end ;
        quit;

提前感謝您提供建議的解決方案。

因此,如果兩個表具有相同的結構,則 SQL 代碼中唯一需要更改的部分是 FROM 子句。 有條件地將宏變量設置為要使用的名稱並將數據集的名稱替換為對宏變量的引用可能更容易。

select var1,varb, ....
  from &dsname.

現在問題變成了僅設置宏變量之一。 你可以用宏觀邏輯來做到這一點。 但是您也可以使用數據步驟邏輯來做到這一點。

data _null_ ;
  if exist("Base.pk_&monthP1") then call symputx('dsname','table1');
  else call symputx('dsname','table2');
run;
proc sql;
   ... from &dsname. ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM