BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
SAS_inquisitive
Lapis Lazuli | Level 10

 

Calculated  is not working in character variable alias.

 

proc sql;
  select name as name1,
         calculated (substr(name1,1,2)) as test
    from sashelp.class;
quit;

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
ChrisNZ
Tourmaline | Level 20

Works fine for me:

proc sql;
  select upcase(NAME)                 as NAME1
        ,substr(calculated NAME1,1,2) as NAME2
  from SASHELP.CLASS;
quit;
NAME1 NAME2
ALFRED AL
ALICE AL
BARBARA BA
CAROL CA
HENRY HE
JAMES JA

 

 

 

 

 

View solution in original post

3 REPLIES 3
ChrisNZ
Tourmaline | Level 20

Works fine for me:

proc sql;
  select upcase(NAME)                 as NAME1
        ,substr(calculated NAME1,1,2) as NAME2
  from SASHELP.CLASS;
quit;
NAME1 NAME2
ALFRED AL
ALICE AL
BARBARA BA
CAROL CA
HENRY HE
JAMES JA

 

 

 

 

 

RW9
Diamond | Level 26 RW9
Diamond | Level 26

Calculated is not a function, so your syntax:

calculated (<some code>) 

is invalid, it should read:

calculated <calculated variable name>

And then any further code should appear outside that statement.

 

This point is however moot as the code:

proc sql;
  select name as name1,
         substr(name,1,2) as test
    from sashelp.class;
quit;

Is in fact all you need, the calculated just adds more processing onto the whole thing so is a waste. 

Loko
Barite | Level 11

name1 is not a calculated variable within the proc sql syntax. It is an alias you set to an already existing variable from the data file.

Calculated makes sens when you refer to a variable that it is generated in the proc sql.

 

Consider the following as an example:

 

proc sql;
  select name as name1,
         substr(name1,1,2) as test,
		  length(calculated test) as test1
    from sashelp.class;
quit;

SAS Innovate 2025: Register Now

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!

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
  • 3 replies
  • 7497 views
  • 2 likes
  • 4 in conversation