Proc SQL Case When

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 138
Accepted Solution

Proc SQL Case When


Hi,

I have some code that runs fine but when i add in the case statement on Proc SQL it 'falls over'. Can anyone please advise where I am going wrong with the complete statement?

PROC SQL;
create table work.red as
select
num,
month_date,
arrs,
remaining_months, 
platform,
valuation,
Type,

count(*) as count,
avg (tv) ,
avg (bal),

case when 
remaining_months <= 1 then 'End'
else if Remaining_months <= 12 then 'End OP'
else if arrs not in '1' then 'Ars' else 'Rege' end as Red_son

from
sun.sunny

where
platform = 'O'
and Arrs not in ('L4','L5','L6')

group by

num,

month_date

arrs

remaining_months 

platform

valuation

Type

quit;


Accepted Solutions
Solution
‎07-30-2014 10:32 AM
Trusted Advisor
Posts: 1,202

Re: Proc SQL Case When

Try modifying case statement syntax in above.

case

when  remaining_months <= 1 then 'End'

when Remaining_months <= 12 then 'End OP'

when arrs ne '1' then 'Ars'

else 'Rege' end as Red_son

View solution in original post


All Replies
Solution
‎07-30-2014 10:32 AM
Trusted Advisor
Posts: 1,202

Re: Proc SQL Case When

Try modifying case statement syntax in above.

case

when  remaining_months <= 1 then 'End'

when Remaining_months <= 12 then 'End OP'

when arrs ne '1' then 'Ars'

else 'Rege' end as Red_son

Esteemed Advisor
Esteemed Advisor
Posts: 7,195

Re: Proc SQL Case When

Hi,

you are mixing SAS syntax and SQL there:

case      when     remaining_months <= 1 then 'End'
              when     Remaining_months <= 12 then 'End OP'
              when     arrs not in '1' then 'Ars'

              else       'Rege' end as Red_son

The syntax is:

case     when  [condition] then [result]

               else [fallout response] end

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 230 views
  • 0 likes
  • 3 in conversation