Link to home
Start Free TrialLog in
Avatar of kwcowboy195612
kwcowboy195612

asked on

Nested if then else statements

I want to find out if there is a better way to do this statement and make it work.


IF ( [Student Center].[Current Building] < '20' ) THEN
    (IF ( [Course Code - Course]  = '0021' or
            [Course Code - Course]  = '0025'  or
            [Course Code - Course]  = '1711L'  or
            [Course Code - Course]  = ' 1721' or
            [Course Code - Course]  = '1731' or
            [Course Code - Course]  = '1741'  or
            [Course Code - Course]  = '8452'  or
            [Course Code - Course]  = '8453' ) THEN
            ([Course Code - Course])  ELSE (null))
ELSE
     (IF ( [Course Code - Course]  = 'J603' or
         [Course Code - Course]  = 'J603L' or
      [Course Code - Course]  = 'J605' or
      [Course Code - Course]  = 'J608' or
      [Course Code - Course]  = 'J615' or
      [Course Code - Course]  = 'J615L'  or
      [Course Code - Course]  = 'J703' or
      [Course Code - Course]  = 'J705' or
      [Course Code - Course]  = 'J715' or
      [Course Code - Course]  = 'J715L'  or
      [Course Code - Course]  = 'J709'  or
      [Course Code - Course]  = 'J805' or
      [Course Code - Course]  = 'J815' or
      [Course Code - Course]  = 'J815L'  or
      [Course Code - Course]  = 'J835') THEN
                 ( [Course Code - Course])  ELSE (null))
Avatar of stalhw
stalhw

I'm pretty sure a CASE statement would be more efficient...
declare @result varchar(20)

SELECT @result=CASE 
WHEN [Student Center].[Current Building] < '20'  
AND [Course Code - Course]  IN ('0021','0025','1711L','1721','1731','1741','8452','8453' 
THEN [Course Code - Course]
WHEN NOT ([Student Center].[Current Building] < '20' ) 
AND [Course Code - Course] IN ('J603','J603L','J605','J608','J615','J615L' ,'J703','J705','J715','J715L' ,'J709' ,'J805','J815','J815L' ,'J835') THEN [Course Code - Course] 
ELSE NULL END

Open in new window

In your original statement, just use 'IN' instead of multiple 'OR's.
ASKER CERTIFIED SOLUTION
Avatar of stalhw
stalhw

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial