2014-09-06 6 views
3

У меня есть несколько условий для удовлетворения в случае я хотел бы знать, могу ли я использовать> < вместо определения каждого случаяSQL СЛУЧАЙ, КОГДА или IF ELSE IF

В этом случае, когда кредитный рейтинг меньше, чем 3, то слово «NO TRADE» будет вставлено и больше, то 3, то меньше 5 будет «ПЛОХО», и так далее и так далее

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 
+0

http://stackoverflow.com/questions/5487892/sql-server-case-when-or-then-else-end-the-or-is-not-supported (для SQL Server, он может изменяются по SQL-реализации - обязательно добавьте соответствующий тег) – user2864740

ответ

3

Конечно, это возможно.

 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 
+0

WHEN CreditRating == 7 6 THEN 'GOOD' дает ошибку synthax на SQL Server ... – aleroot

+0

Конечно, это возможно. случае, когда CreditRating <= 2 ТОГДА 'НЕТ ТОРГОВЛЕ' ПРИ CreditRating <= 4, то 'неудовлетворительно' ПРИ CreditRating <= 6 ТОГДА 'насчитайте' КОГДА CreditRating == 7 ТОГДА 'ХОРОШО' ELSE END 'совершенный' AS RATING –

+0

Спасибо, так что, похоже, если первый случай будет выполнен, он будет игнорировать все остальные. замечательно. спасибо –