In the below code:
case when strip(col1) then "DIGIT"
when anyalpha( strip(col1)) then "ALPHA"
else "DIGIT"
I am confused about the first statement. Under what condition will it evaluate to 'DIGIT'? When col1 = null? I understand the second case....if col1 has an alphabet, it will evaluate to "ALPHA"
It makes very little sense to me. You don't say whether col1 is character or numeric, but when I try it with a numeric variable it fails with
ERROR: Function STRIP requires a character expression as argument 1.
so we'll assume that col1 is character.
If it's anything other than blank, the first when clause will be satisfied, and the result will be "DIGIT". If it's blank, the second when clause won't be satisfied, and it will fall through to the else clause, and the result will be "DIGIT".
I can't figure out how to get a result of "ALPHA"!
Tom
Eagles,
The Strip(function) works on character variables. If you were to assume that any value that does not have an alpha, is a numeric, then this code should work for you.
case
when anyalpha( strip(col1)) then "ALPHA"
else "DIGIT" end as variable_type
It makes very little sense to me. You don't say whether col1 is character or numeric, but when I try it with a numeric variable it fails with
ERROR: Function STRIP requires a character expression as argument 1.
so we'll assume that col1 is character.
If it's anything other than blank, the first when clause will be satisfied, and the result will be "DIGIT". If it's blank, the second when clause won't be satisfied, and it will fall through to the else clause, and the result will be "DIGIT".
I can't figure out how to get a result of "ALPHA"!
Tom
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.
Find more tutorials on the SAS Users YouTube channel.