Wie Makros in SQL verwenden? (Für jedes Ding, das war gewählt)SAS-Makros: Verwenden von Makros in proc sql
ich so etwas wie dies bedeuten:
&VarTable
ist eine Tabelle, die zwei Variablen: (zum Beispiel) Lib
und Table
Jede Beobachtung in &VarTable
ist die Name der Tabelle: Lib.Table
ich möchte für jeden Tisch Dinge tun:
1) gibt es?
2) Sortieren es
und letzte Zustand: Jede Tabelle, wenn sie vorhanden sind, haben eine variable &VarField
.
%macro mSortedTable(vLib,vTab,vVar);
%if %sysfunc(exist(&vLib..&vTab)) %then %do;
proc sort data = &vLib..&vTab;
by &vVar;
run;
&vLib..&vTab
%end;
%else %do; "" %end;
%mend mSortedTable;
proc sql noprint;
select %mSortedTable(vLib=Lib,vTab=Table,vVar=&VarField)
into: AccumVar separated by " "
from &VarTable;
quit;
wie mit sql und macros?
Ausweichen erste Frage: Dieser Code funktioniert nicht, natürlich – gaussblurinc
so mit einem Datensatz, die Erklärungen der Bibliothek enthält und die Datensatznamen möchten Sie Aktionen ausführen auf jedem Datensatz? und Sie möchten jeden Variablennamen in ein Makro einfügen? –
ja. mein Kollege sagte mir, dass ich das tun kann, mit Katzen und Makrogeneration: proc sql noprint; 'selektiere Katzen ('% mSortedTable (', Lib, ',', Table, ',', & VarField, ')') in: AccumVar getrennt durch" " aber diese Variante kann nicht in datastep verwendet werden, so dass i entschied sich, die gleiche Konstruktion mit zwei Makros zu verwenden, wird zuerst sortieren, ein anderer wird Name 'Lib.Table' setzen – gaussblurinc