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

Hello team,

I have the code below:

I want to know why this part: trim(put(mbrDes,$CON.)) equals to DSS, it doesn't get equal to whole string. 

The code below doesn't generate errors: 

 

proc format;
values $CON
'b' = 'DSS- PP'
Run;

Data want (Keep = mbrDes);
format LineofBu $60. system $5;
set have;
LineofBu =trim(put(mbrDes,$CON.));
if LineofBu =: 'DSS' Then system = 'DSS';
run;

Regards,

blueblue

Blue Blue
1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26

The semicolon after the = sign in this line of code

 

if LineofBu =: 'DSS' Then system = 'DSS';

indicates that the test checks to see if the value of LineofBu starts with DSS (it does not test if the entire string is equal to DSS)

--
Paige Miller

View solution in original post

2 REPLIES 2
PaigeMiller
Diamond | Level 26

The semicolon after the = sign in this line of code

 

if LineofBu =: 'DSS' Then system = 'DSS';

indicates that the test checks to see if the value of LineofBu starts with DSS (it does not test if the entire string is equal to DSS)

--
Paige Miller
Reeza
Super User

FYI - your code as posted does generate errors for me - there are three syntax errors in your code.

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 2 replies
  • 937 views
  • 1 like
  • 3 in conversation