2014-09-06 114 views
3

我有多個條件的情況下 滿足我想知道如果我可以使用> <,而不是界定每一個案件SQL CASE WHEN或IF ELSE IF

在這種情況下,當信用評級是小然後3然後,「否TRADE」將在

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 2014-09-06 07:06:27

回答

3

當然有可能插入在字 和更大然後3,更小,然後5將是「差」,等等等等。

 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

當CreditRating == 7 6那麼'好'給SQL Server上的合成錯誤... – aleroot 2014-09-06 07:15:52

+0

當然這是可能的。 情況下,當企業資信<= 2 THEN 'NO TRADE' WHEN企業資信<= 4 THEN '差' WHEN企業資信<= 6 THEN 'AVARAGE' WHEN企業資信== 7 THEN 'GOOD' ELSE '完美' END AS RATING – 2014-09-06 07:20:56

+0

謝謝,所以看起來,如果遇到第一種情況,它會忽略所有其他情況。那很棒。謝謝 – 2014-09-06 07:21:05