Help using Base SAS procedures

PROC SQL Case WHEN....how to?

Reply
Occasional Contributor
Posts: 9

PROC SQL Case WHEN....how to?

[ Edited ]

 

Edited...

 

How would I in a Proc SQL statement maintain this datastep: Also, I want to obtain a cartesian product so there is a deviation form datastep but it will be controlled by a where clause in the Proc SQl Code.

 

data want;

   merge dset_1 dset_2;

   by "some common variable properly sorted";

   if dset_1.var1 = dset_2.var1 then do;

     dset_1.var2=dset_2.var2;

     dset_1.var3=dset_2.var3;

  end;

  else do;

    dset_1.var1= "Missing";

    dset_1.var2= "Missing"; 

 end;   

run;

 

Somebody please help me understand this. I tried various combinations nothing worked.

 

Regards,

Vinny.

Regular Contributor
Posts: 217

Re: PROC SQL Case WHEN....how to?

I don't know what 'contelled' is, but what do you want to happen if dset_1.var1 is not equal to dset_2.var1?

Occasional Contributor
Posts: 9

Re: PROC SQL Case WHEN....how to?

Posted in reply to tomrvincent

Hi Tom,

 

I am sorry about that...updated the information.Thanks for noticing and notifying.

 

Regards,

Vinny.

Regular Contributor
Posts: 217

Re: PROC SQL Case WHEN....how to?

so you'd want to do a left join between the 2 tables.  Then your case statement can be something like

 

case when table2.var is missing then 'missing' else table2.var end

Super User
Posts: 5,890

Re: PROC SQL Case WHEN....how to?

You'll need a case for each var assignment, hence repeating of some logic - one little drawback for SQL over the data step.
Data never sleeps
Ask a Question
Discussion stats
  • 4 replies
  • 183 views
  • 0 likes
  • 3 in conversation