SELECT INTO如何与SAS一起工作

SELECT INTO如何与SAS一起工作,select,sas,Select,Sas,我是SAS新手,我尝试将代码从Access vba复制到SAS中。 在Access中,我经常使用SELECT INTO功能,但在我看来,该功能不在SAS中 我有两个表,每天都有新的数据,我想用新行更新我的表。现在我需要检查是否出现一些新行->如果是,将这些行插入到旧表中 我试过stackoverflow的一些代码和Google的其他东西,但没有找到有效的 INSERT INTO OLD_TABLE T VALUES (GRVID = VTGONR) FROM NEW_TABLE V WHERE

我是SAS新手,我尝试将代码从Access vba复制到SAS中。 在Access中,我经常使用SELECT INTO功能,但在我看来,该功能不在SAS中

我有两个表,每天都有新的数据,我想用新行更新我的表。现在我需要检查是否出现一些新行->如果是,将这些行插入到旧表中

我试过stackoverflow的一些代码和Google的其他东西,但没有找到有效的

INSERT INTO OLD_TABLE T
VALUES (GRVID = VTGONR)
FROM NEW_TABLE V
WHERE not exists (SELECT V.VTGONR FROM NEW_TABLE V WHERE T.GRVID = V.VTGONR);

不确定在示例中使用VALUES关键字的目的是什么。PROC SQL使用值列出静态值。比如:

VALUES (100)
SAS只是使用普通的SQL语法。例如,见:

要指定要插入的观测值,只需使用“选择”。可以添加WHERE子句作为select的一部分,以限制要插入的行。告诉INSERT要插入哪些列,请在表名后面列出这些列。否则,它将期望列在select语句中列出的顺序与目标表中列的顺序相匹配

insert into old_table(GRVID)
  select VTGONR from new_table
  where VTGONR  not in (select GRVID from old_table)
;

好的,谢谢,但现在我得到一个大错误:错误:您无法重新打开旧的_table.DATA以使用成员级控件进行更新访问,因为您正在资源环境SQL 2中使用旧的_table.DATA。错误:如果发生错误,PROC SQL无法撤消此语句,因为它无法以独占方式访问数据集。由于SQL选项UNDO_POLICY=REQUIRED有效,此语句将不会执行。通常我会分两步执行此操作。创建包含要插入的数据的表。然后插入数据。