我使用的是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
这样,如果第一个计算列更改了第二个列,则也会更改。这不可能吗?
提前加油。
答案 0 :(得分:7)
您可以阅读有关计算变量here的更多信息(段落名称“ SELECT上的计算选项”)。对于您的情况,您应该写:
CASE
WHEN CALCULATED Computed_column1 > z THEN "TRUE"
ELSE "FALSE"
END
答案 1 :(得分:3)
它的工作原理几乎与您想象的一样。只需使用calculated
而不是computed
。