BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
chavezt87
Calcite | Level 5

Hello,

I'm have a dataset with 3 columns of dates. What I would like to do is create one single column which prioritizes putting Date 1 in it, but if Date 1 is missing it places Date 2 into the new column and finally if both Date 1 and Date 2 are missing it places Date 3 into the new column.

 

Date 1Date 2Date 3
6/15/20176/14/2017 
  6/12/2017
 6/15/2017 
6/14/20176/15/20176/20/2017

 

Output should look like this

Date
6/15/2017
6/12/2017
6/15/2017
6/14/2017

 

Thank you!

1 ACCEPTED SOLUTION

Accepted Solutions
vsing154
Calcite | Level 5

proc sql;

select case

when date1 ne . then date1

when date1=. and date2 ne . then date 2

when date1=. and date2=. then date3

end as date from table;

quit;

 

View solution in original post

4 REPLIES 4
SuryaKiran
Meteorite | Level 14

You can use IF THEN condition.

 

IF NOT MISSING(DATE1) THEN DATE=DATE1;
ELSE IF MISSING(DATE1) AND NOT MISSING(DATE2) THEN DATE=DATE2;
ELSE DATE=DATE3;

Thanks,
Suryakiran
vsing154
Calcite | Level 5

proc sql;

select case

when date1 ne . then date1

when date1=. and date2 ne . then date 2

when date1=. and date2=. then date3

end as date from table;

quit;

 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 4054 views
  • 4 likes
  • 4 in conversation