sql - SAS SQL根据宏变量结果创建表
问题描述
我正在努力根据宏变量结果在 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. ...
推荐阅读
- google-chrome-extension - Chrome 扩展程序:本地字体未导入
- javascript - 为什么填充jstree时不显示我的自定义html
- amazon-web-services - 为 devstack rocky 设置 Local.conf
- php - PHP-DI 注入静态类
- docker-compose - 容器中的空文件,使用带有卷的 docker-compose 来使用现有文件初始化映像
- sql-server - SSAS 内部错误:发生意外错误(文件“pfcre.cpp”函数 PFCREngine::SelectCartridge)
- docker - Kubernetes: MountVolume.SetUp failed: hostPath type check failed is not a directory
- css - 无法让店面顶部标题元素响应(垂直)对齐
- ios - 在 Xcode 中过滤包含多行字符串的控制台输出
- ionic-framework - 如何创建可拖动的谷歌地图