如何在不从现有 table 中选择的情况下使用 `Proc SQL` 创建 table
How to create a table using `Proc SQL` without selecting from existing tables
“select from dual
”的 SAS 版本是多少?我想使用 Proc SQL
创建一个 table 而不从现有的 table 中进行选择。例如。基本上我想要这样的东西:
PROC SQL;
CREATE TABLE tmptable AS
SELECT 1 AS myvar FROM dual;
QUIT;
这不起作用。我有什么选择?
我认为 SAS 中的 DUAL 没有类似 select 的东西。
但如果这对你有帮助,你可以试试:
proc sql inobs=1; /* limit read to only one observations */
select 1 as myvar
from sashelp.table /* or any table desired */
;
quit;
INOBS=1 确保您只从 sashelp.table
读取一行,因此您只有一个结果。
如您所说,SAS Proc SQL
没有预制 DUAL
table.
您可以改用 CREATE
和 INSERT
语句。
示例
proc sql;
create table want (x num);
insert into want values (1);
insert into want
values(2)
values(3)
;
quit;
或首先创建您自己的 DUAL
(也许如果将 SQL 代码迁移到 SAS Proc SQL
)
proc sql;
create table dual (dummy char(1)); insert into dual values ('X');
CREATE TABLE tmptable AS
SELECT 1 AS myvar FROM dual;
quit;
“select from dual
”的 SAS 版本是多少?我想使用 Proc SQL
创建一个 table 而不从现有的 table 中进行选择。例如。基本上我想要这样的东西:
PROC SQL;
CREATE TABLE tmptable AS
SELECT 1 AS myvar FROM dual;
QUIT;
这不起作用。我有什么选择?
我认为 SAS 中的 DUAL 没有类似 select 的东西。 但如果这对你有帮助,你可以试试:
proc sql inobs=1; /* limit read to only one observations */
select 1 as myvar
from sashelp.table /* or any table desired */
;
quit;
INOBS=1 确保您只从 sashelp.table
读取一行,因此您只有一个结果。
如您所说,SAS Proc SQL
没有预制 DUAL
table.
您可以改用 CREATE
和 INSERT
语句。
示例
proc sql;
create table want (x num);
insert into want values (1);
insert into want
values(2)
values(3)
;
quit;
或首先创建您自己的 DUAL
(也许如果将 SQL 代码迁移到 SAS Proc SQL
)
proc sql;
create table dual (dummy char(1)); insert into dual values ('X');
CREATE TABLE tmptable AS
SELECT 1 AS myvar FROM dual;
quit;