缺少的值未替换为SAS SQL

缺少的值未替换为SAS SQL,sql,sql-server,sas,Sql,Sql Server,Sas,我试图用0替换D_分数数值变量中缺少的值。我没有得到替换的值,也没有错误。我不确定是什么问题 proc sql; create table Scores as select pa_id, sum(D_I_score) as D_score, sum(C_I_score) as C_score, sum(R_I_score) as R_score, sum(G_I_score) as G_score,

我试图用0替换D_分数数值变量中缺少的值。我没有得到替换的值,也没有错误。我不确定是什么问题

proc sql;
  create table Scores as
  select pa_id, 
        sum(D_I_score) as D_score, 
        sum(C_I_score) as C_score, 
        sum(R_I_score) as R_score, 
        sum(G_I_score) as G_score,  
            (case when  calculated D_score IS NULL then 0 else D_score end) as D_score

  from Join_G_ABS
  group by pa_id;
quit;


您有两个同名的列。我想你想要:

select pa_id, 
       coalesce(sum(D_I_score), 0) as D_score, 
       sum(C_I_score) as C_score, 
       sum(R_I_score) as R_score, 
       sum(G_I_score) as G_score 

也就是说,将定义落实到位。此外,合并比您使用的案例逻辑更简单。

是的,没错。我看它现在能用了。谢谢戈登!!但是我在我的查询中使用了calculated,因为它是同一个变量D_score,不起作用。我不明白为什么。问题不是case表达式中的引用。问题是列名重复。