如何在proc SQL查询中使用自动完成功能?
例如,当我使用proc print时,我可以对libnames,表和字段使用自动完成。
如何在proc SQL中执行相同操作?
由于
答案 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还没有计算出这个功能。