10

I have multiple conditions to meet in a case I would like to Know if I can use > < instead of defining every case

In this case when the credit rating is smaller then 3 then, the word "NO TRADE" will be inserted and larger then 3, smaller then 5 would be "POOR", and so on and so on

SELECT  ClientId, 
    FirstName,
    LastName,
    Gender,
    DateOfBirth,
    CreditRating,

        CASE CreditRating

            WHEN 0 THEN 'NO TRADE'
            WHEN 1 THEN 'NO TRADE'
            WHEN 2 THEN 'NO TRADE'
            WHEN 3 THEN 'POOR'
            WHEN 4 THEN 'POOR'
            WHEN 5 THEN 'AVARAGE'
            WHEN 6 THEN 'AVARAGE'
            WHEN 7 THEN 'GOOD'
            ELSE 'PERFECT' 

            END AS RATING

    FROM dbo.client
Gerrit Duvenage
  • 103
  • 1
  • 1
  • 4
  • http://stackoverflow.com/questions/5487892/sql-server-case-when-or-then-else-end-the-or-is-not-supported (for SQL Server, it may vary by SQL implementation - make sure to add the appropriate tag) – user2864740 Sep 06 '14 at 07:06

1 Answers1

14

Sure it is possible.

CASE 

WHEN CreditRating <= 2  THEN 'NO TRADE'
WHEN CreditRating  <= 4 THEN 'POOR'
WHEN CreditRating  <= 6 THEN 'AVARAGE'
WHEN CreditRating  = 7 THEN 'GOOD'

ELSE 'PERFECT' 

END AS RATING
cнŝdk
  • 31,391
  • 7
  • 56
  • 78
Wrapper Tech
  • 222
  • 2
  • 5
  • Sure it is possible. Case WHEN CreditRating <= 2 THEN 'NO TRADE' WHEN CreditRating <= 4 THEN 'POOR' WHEN CreditRating <= 6 THEN 'AVARAGE' WHEN CreditRating == 7 THEN 'GOOD' ELSE 'PERFECT' END AS RATING – Wrapper Tech Sep 06 '14 at 07:20
  • Thanks, so it looks like, if the first case is met, it will ignore all the others. that's great. thanks – Gerrit Duvenage Sep 06 '14 at 07:21
  • 1
    SQL uses `=` for equality, not `==` –  Sep 06 '14 at 07:39