Proc SQL Update

时间:2017-02-24 13:37:45

标签: sql sas

如何在加入另一个表时使用PROC SQL更新字段以定义条件?我不想用第二个表中的另一个字段更新字段,我只想用“" Small"”更新字段。我使用的是这种语法,但它不起作用:

PROC SQL;
UPDATE GROUP A
SET SEGMENT = 
(SELECT 'SMALL'
 FROM SMALL_GROUP_REPORT B
 WHERE  A.NUMBER = B.NUMBER);

1 个答案:

答案 0 :(得分:1)

如果您想使用其他表中的列更新表格,那么您不会想要单引号:

PROC SQL;
    UPDATE GROUP A
        SET SEGMENT = (SELECT SMALL
                       FROM SMALL_GROUP_REPORT B
                       WHERE A.NUMBER = B.NUMBER
                      );

但是,如果该行存在于另一个表中,您似乎将该段视为'SMALL'

PROC SQL;
    UPDATE GROUP A
        SET SEGMENT = 'SMALL'
        WHERE EXISTS (SELECT 1
                      FROM SMALL_GROUP_REPORT B
                      WHERE A.NUMBER = B.NUMBER
                     );