BookmarkSubscribeRSS Feed
LearnByMistk
Obsidian | Level 7

I was using proc sql  case when statement  on sas EG and similar code using sas access to teradata to convert char to int.

 

logic run on sas eg which give error as  2nd when conditon has different data type variable

 

so what i have 

when var_cd equal '0' then 0 

when var_cd equal ' ' then null

else (10- input(var_Cd,8.) end as my_var_val

 

Logic which worked in Teradata sas access 

 

,cast(

                case

                when var_Cd is null then null

                when var_Cd = '0' then null

                else 10 - cast(var_Cd as byteint)

                end as byteint)            as var_Cd

 

Could anyone please elaborate how this thing process via SAS access but not in sas EG  where i used simple 

libname td teradata(user=&user pwd=&pwd schema=my_Schema );

2 REPLIES 2
PGStats
Opal | Level 21

Read the warnings and error messages.

 

equal should be eq or =

null should be .

your parentheses should be balanced

 

 

 

PG
Reeza
Super User

Your first code is SAS code. 

 

Your second set of code is Teradata code, use SQL Pass Through - code is literally passed to Teradata server. 

 

When end using a libname connection in EG you need to use SAS code. 

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