Hi All,
Can you please help me getting the below output using sql join
It seems that table b updates table a:
data nn;
update a b;
by id;
run;
What is the logic behind the first row in your want dataset?
Please post your test data as text in a code window (thats the {i} above post area) in future. For an SQL solution:
proc sql; create table WANT as select COALESCE(A.ID,B.ID) as ID, COALESCE(A.NAME,B.NAME) as NAME from A full join B on A.ID=B.ID; quit;
Yep, my code works then.
Yuo would be best off clarify the logic behind why a data item appears in the output, if it is take B value if present else A then swap the coalesce over:
proc sql; create table WANT as select COALESCE(A.ID,B.ID) as ID, COALESCE(B.NAME,A.NAME) as NAME from A full join B on A.ID=B.ID; quit;
A data step variant that leaves the name for ID 1 intact:
data nn;
merge
a
b (rename=(name=_name))
;
by id;
if missing(name) then name = _name;
drop _name;
run;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.