SAS EG 5.1 - 过程 SQL

SAS EG 5.1 - PROC SQL

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

例如,当我使用 proc print 时,我可以对库名、表和字段使用自动完成功能。

如何在 proc SQL 中做同样的事情?

谢谢

在 Enterprise Guide 5.1 中,据我所知,您只能在 PROC SQL 中自动完成 table 名称 。所以:

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

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

在 EG 7.1(而非 6.1)中,您还可以自动完成库名 (sashelp)。然而,where 子句似乎仍未自动完成。 PROC SQL 语法对于自动完成解析器的解析来说有点复杂,因此可能由于这个原因而被遗漏了。


正如 Raphael 在评论中指出的那样,ctrl+L 是自动完成库的热键;这在编辑器 window 中任何地方 都有效(包括在开放代码中),因此这将是 EG 5.1/6.1 的解决方法,在 PROC SQL 中默认没有此功能.

但是,Data Set Variable 的组合键是 ctrl+shift+V,这 not 在 PROC SQL 中起作用(但在 Data Step 中起作用,即使在通常不以这种方式工作的代码中也是如此)。我的猜测是 SQL 更难解析一个变量来自哪个数据集,SAS 还没有实现这个功能。