Sas 从一个计算列引用另一个计算列

Sas 从一个计算列引用另一个计算列,sas,calculated-columns,enterprise-guide,Sas,Calculated Columns,Enterprise Guide,我使用的是SAS Enterprise Guide 7.1,但似乎有一些基本的问题。我将简化这个问题,但基本上我有一个使用CASE/WHEN语句的计算列(computed_column1) CASE WHEN x > y THEN "TRUE" ELSE "FALSE" END 我希望在第二个计算列(computed_column2)中引用第一个计算列,但查询生成器中的“高级表达式”选项卡将遍历第一个计算列中的所有内容,而不是引用计算列名称。因此,如果我需要更改第一列,我还必须更改第二列

我使用的是SAS Enterprise Guide 7.1,但似乎有一些基本的问题。我将简化这个问题,但基本上我有一个使用CASE/WHEN语句的计算列(computed_column1)

CASE
WHEN x > y THEN "TRUE"
ELSE "FALSE"
END
我希望在第二个计算列(computed_column2)中引用第一个计算列,但查询生成器中的“高级表达式”选项卡将遍历第一个计算列中的所有内容,而不是引用计算列名称。因此,如果我需要更改第一列,我还必须更改第二列

因此,我的第二个计算列如下所示:

CASE
WHEN (CASE WHEN x > y THEN "TRUE" ELSE "FALSE" END) > z THEN "TRUE"
ELSE "FALSE"
END
当我希望它是某种类型的动态引用时,例如:

CASE
WHEN Computed_column1 > z THEN "TRUE"
ELSE "FALSE"
END
这样,如果第一个计算列更改,第二个计算列也将更改。这不可能吗


提前干杯。

这几乎和你想象的一样有效。只需使用
computed
而不是
computed

即可阅读有关计算变量的更多信息(段落名称“选择上的计算选项”)。在你的情况下,你应该写:

CASE
WHEN CALCULATED Computed_column1 > z THEN "TRUE"
ELSE "FALSE"
END

如果您使用的是查询生成器,您会被它生成的代码所困扰,但我假设如果您在查询生成器中的某个位置修复它,它也会在其他位置修复。