满足两个条件时使用PROC SQL to select null

Use PROC SQL to select null when two conditions are met

我是 运行 一个代码,我通过从 table 中获取所有列然后添加第二个 table 中的两列来创建 table。如果来自第二个 table 的两个值等于 0,我需要将它们设置为空。我可以有其他组合,例如 FIELD1 = 0FIELD1 = 1 但不能都等于 0.

我正在使用 PROC SQL 这样的:

PROC SQL;
    CREATE TABLE TABLEA  AS 
        SELECT A.*,
            CASE 
                WHEN (B.FIELD1 NE 0 AND B.FIELD2 NE 0)
                THEN B.FIELD1
            ELSE .
            END 
        AS FIELD1,
            CASE 
                WHEN (B.FIELD2 NE 0 AND B.FIELD1 NE 0)
                THEN B.FIELD2
            ELSE .
            END 
        AS FIELD2
            FROM TABLE1 AS A
                LEFT JOIN TABLE2 AS B ON A.ID = B.ID;
QUIT;

我显示的代码不起作用,我仍然看到很多记录 FIELD1 = 0FIELD2 = 0 在结果 table TABLEA.

我在这里错过了什么?

原来我需要确保变量不存在,否则它只会保留现有的变量并导致这种混乱。