BookmarkSubscribeRSS Feed
D7
Calcite | Level 5 D7
Calcite | Level 5

Hi, I'm using a case else statement to try to create a new variable (source_flag) to fill in for blank for the first_source variable, however it is not populating the new variable definition of 'unknown' when it runs.  Any help would be greately appreciated.

 

proc sql;
create table d02_buyer_source_recency as
select DISTINCT email_id,
/* first source */
first_source,
first_available_source,
CASE when (first_source = ' ' OR first_source = '.') then 'UNKNOWN'
ELSE first_source END as Source_Flag
from oralib.sum_email_list_vw ;
quit;

4 REPLIES 4
collinelliot
Barite | Level 11

It's not fully clear without seeing your data, but you could try:

 

CASE first_source WHEN '' THEN 'UNKNOWN'

                              WHEN '.' THEN 'UNKNOWN'

                              ELSE first_source

END AS Source_Flag

D7
Calcite | Level 5 D7
Calcite | Level 5

Hi, thank you for your recommendation, however when I ran the adjustment still gettting 'blank' variable instead of 'unknown' in the source_flag fields.

 

collinelliot
Barite | Level 11

I assume first_source is character. Are there embedded blanks? Maybe put strip(first_source) for the CASE statement?

Tom
Super User Tom
Super User

Make sure your character variable is really empty. It might just look empty, but really include non-printing characters like tabs, line feeds, carriage returns, form feeds, non-breaking spaces, nulls.  

 

Also it might look like it has just a period in it, but it really has a period that follows one or move spaces.

CASE when compress(first_source) in (' ','.')  then 'UNKNOWN'
     ELSE first_source 
END as Source_Flag

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

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
  • 3190 views
  • 0 likes
  • 3 in conversation