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
我很好奇是否可以在同一 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