The SAS Output Delivery System and reporting techniques

Pseudo code

Reply
Contributor
Posts: 58

Pseudo code

I have some logic that I am trying to do in SAS but not sure how to do this.

If Component_Product_ID is missing then ICIS_Product_ID else Component_Product_ID. This is the definition (calculation) for a field called Pseudo_Pr_ID.

I have some SQL from another program that uses DECODE:
DECODE(T3."COMPONENT_PRODUCT_ID",NULL,T3."ICIS_PRODUCT_ID" ,T3."COMPONENT_PRODUCT_ID")

Would a CASE statement work? If so, how would the syntax be.
Frequent Contributor
Posts: 95

Re: Pseudo code

I think a CASE statement would work.

proc sql;
select case when Component_Product_ID = . then ICIS_Product_ID else Component_Product_ID end as Pseudo_Pr_ID
from . . .
quit;
N/A
Posts: 0

Re: Pseudo code

the coalesce function might be your answer; it returns the first non-null argument and works in data step and in proc sql:

data coalesce;
input x y;
z = coalesce(x,y);
datalines;
1 2
. 3
4 .
. .
run;

proc sql;
select x, y, coalesce(x,y) as z
from coalesce
;
quit;
Ask a Question
Discussion stats
  • 2 replies
  • 288 views
  • 0 likes
  • 3 in conversation