SQL:有没有办法在同一个 SELECT 语句中使用 new/user 定义的变量?

SQL: Is there a way to use a new/user defined variable within the same SELECT statement?

我很好奇是否可以在同一 SELECT 语句中 use/reference 新用户创建的变量。下面是我尝试做的一些示例代码(计算 AGE 并为年龄 >= 60 的患者创建一个指标变量)都在同一个 SELECT 语句

create table AGE_60_UP as
     select ID
            , DATE_OF_BIRTH
            , INDEX_DATE
            , (year(INDEX_DATE) - year(DATE_OF_BIRTH)) as AGE
            , case when AGE >= 60 then 1 else 0 
            end as AGE_60_UP_INDICATOR;
     from MY_TABLE; 
quit;

我收到的错误信息是: “错误:在贡献表中找不到以下列:AGE”

提前感谢您的帮助或提示!

您不能使用一个计算列来计算同一范围内的另一个计算列。但是,您可以使用子查询来计算第一列,然后在第二个计算列的外部查询中使用它。

例如,您可以这样做:

create table AGE_60_UP as
select *,
  case when AGE >= 60 then 1 else 0 end as AGE_60_UP_INDICATOR
from (
  select
    ID, DATE_OF_BIRTH, INDEX_DATE,
    year(INDEX_DATE) - year(DATE_OF_BIRTH) as age
  from my_table
) x