我目前正在选择一个大的选择声明。我正在尝试通过案例部分。我目前已经设置了案例,其中“Brad”这个名称的单位是“英寸”。
如果我摆脱了单位,它将显示多个结果。在case语句中是否有一种默认方法,其中case返回'brad'的多个结果?如果只有1个结果,它会显示结果,否则如果结果超过1,则使用units ='inches'?
以下是工作案例陈述:
data have;
format id1 id2 $25. value 8.;
input id1 id2 value;
datalines;
a b 10
a c 2
a d 6
b a 5
c a 3
c d 7
;
run;
data reversed;
set have;
if id1 < id2 then do;
value = value * -1;
_id1 = id1;
id1 = id2;
id2 = _id1;
end;
drop _:;
run;
proc sort data=reversed;
by id1 id2;
run;
data want;
set reversed;
by id1 id2;
if first.id2 then _value=0;
_value + value;
if last.id2 then do;
value = _value;
if value < 0 then do;
_id1 = id1;
id1 = id2;
id2 = _id1;
value = value * -1;
end;
output;
end;
drop _:;
run;
这是我想要做的非工作半psedu版本:
And case when R.name = 'Brad' and R.units ='Inches' then 0 else 1 End = 1
无论它应该返回1个结果,如果名称'Brad'返回的值超过1,则默认为英寸
以下是声明如何连接的部分。
And case when Count(R.name ='Brad') > 1 then (R.name = 'Brad' and R.units = 'Inches') else (R.name = 'Brad' ) End