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 还没有实现这个功能。
如何在 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 还没有实现这个功能。