如何在不复制和粘贴同一正文多次的情况下联接大量表?

时间:2018-12-27 16:07:02

标签: sql sas

我正在使用PROC SQL查询编写SAS代码,这将调用总计 32448桌以上。我试图避免必须复制和粘贴相同的代码30K +次。我用PROC SQL编写代码是因为SAS是我的新手,但是我将使用SAS或SQL给出答案。

有什么建议或捷径吗?

谢谢

2 个答案:

答案 0 :(得分:0)

如果您有32,448个表,则数据模型有问题。这些极有可能只是一张桌子的重复,并按某些邮政编码(邮政编码,日期等)分割。它们应该存储在单个表中。

您还有另一个问题。根据{{​​3}}:

  

FROM子句本身可以包含一个采用   可选的表别名。这种类型的嵌套查询表达式称为   嵌入式视图。内联视图是将   在CREATE VIEW语句中有效。 PROC SQL可以支持许多级别的   嵌套,但在任何一个查询中最多只能有256个表。的   256个表的限制包括可能有助于   在FROM子句中指定的视图。

因此,使用proc sql可能无法执行您想要的操作。

答案 1 :(得分:0)

没有更多细节,很难提供确切的答案。但是通常,在SAS中,使用常规SAS代码而不是SQL进行编码会容易得多。

假设“表”一词是指SAS数据集,并进一步假设它们都在同一个库(目录/文件夹)中并且共享唯一的公共前缀(例如week),那么组合步骤可以就这么简单:

libname mylib 'some folder name' ;
data want;
  set mylib.week: ;
run;