缺少的值未替换为SAS SQL
我试图用0替换D_分数数值变量中缺少的值。我没有得到替换的值,也没有错误。我不确定是什么问题缺少的值未替换为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,
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表达式中的引用。问题是列名重复。