SAS-作为宏参数的表的输入列表
我想输入一个表列表作为宏参数 宏代码:SAS-作为宏参数的表的输入列表,sas,sas-macro,Sas,Sas Macro,我想输入一个表列表作为宏参数 宏代码: %MACRO Marco_Name ( Table_Name ) ; PROC SQL; execute ( select (owner ||'.'||table_name) as table_name from dba_tables where table_name in (&Table_Name.) ) QUIT; %MEND Marco_Name ; 当我调用宏时,例如: %Marco_
%MACRO Marco_Name ( Table_Name ) ;
PROC SQL;
execute (
select (owner ||'.'||table_name) as table_name from dba_tables
where table_name in (&Table_Name.)
)
QUIT;
%MEND Marco_Name ;
当我调用宏时,例如:
%Marco_Name ( Table_Name = 'table1', 'table2, 'table3')
我希望通过代码解决以下问题:
select (owner ||'.'||table_name) as table_name from dba_tables
where table_name in ('table1', 'table2, 'table3')
欢迎来到marco编程的精彩世界
%STR
宏函数用于包装包含逗号的值,否则在作为参数传递时会混淆宏处理器
按如下方式调用宏:
%MyMacro ( Table_Name = %str ( 'table1', 'table2, 'table3' ) )
不要包括逗号。SAS
IN()
操作员不需要它们。如果您确实在使用需要它们的传递代码,那么让宏添加它们<代码>%let table_namec=%sysfunc(tranwrd(&table_name,%str(),%str(,))代码>