SAS EG 5.1 - PROC SQL

时间:2015-12-08 17:33:09

标签: autocomplete sas proc-sql enterprise-guide

如何在proc SQL查询中使用自动完成功能?

例如,当我使用proc print时,我可以对libnames,表和字段使用自动完成。

如何在proc SQL中执行相同操作?

由于

1 个答案:

答案 0 :(得分:1)

在Enterprise Guide 5.1中,您可以只在PROC SQL中自动填充表名,据我所知。所以:

proc sql;
  select * from sashelp.class
  where age > 13;
quit;

当您开始输入sashelp时,它不会自动完成,但当您开始键入.class时,它会(假设您的SAS会话已连接,并等待它搜索元数据) - 在我的使用中,我几乎总是要键入.,然后在其上退格,再次输入,以使其正常工作)。您也无法自动填充age

在EG 7.1(而非6.1)中,您还可以自动填写libname(sashelp)。然而,where子句似乎仍未自动完成。 PROC SQL语法对于自动完成解析器进行解析有点复杂,因此可能因此而遗漏。

正如拉斐尔在评论中指出的那样,ctrl+L是自动填充库的热键;这在编辑器窗口(包括开放代码)中任何地方工作,因此这将是EG 5.1 / 6.1的一种解决方法,默认情况下PROC SQL没有这个。

但是,数据集变量的关键组合是ctrl+shift+V,这使得在PROC SQL中工作(但在Data Step中也可以工作,即使在通常不正常的代码中也是如此这样工作)。我的猜测是SQL很难解析变量来自哪个数据集,而SAS还没有计算出这个功能。