2014-01-31 65 views
-4

我有一個僱員表如下:案例基於查詢

ID|description|Grade I|Grade II| 
    1|Permanent |  |T  | 
    2|Temp  |T  |  | 
    3|Permanent |  |  | 

甲級列資格「優」或「良好」;這取決於哪個上述列不爲空。
我需要編寫一個查詢其給出以下的輸出:

ID|description 
    1|Permanent(Excellent) 
    2|Temp(Good) 
    3|Permanent 

我SQL Server上2008
幫助表示讚賞。

+0

如同在計算器上的一切......你嘗試過什麼? – Rob

+0

您可以在select中使用函數或case語句來爲您返回描述,但像Rob說的那樣。你有什麼嘗試 – Jaques

回答

1

嘗試像這樣

SELECT ID,Description, 
     CASE WHEN GRADE1 IS NOT NULL THEN 'Excellent' 
      WHEN GRADE2 IS NOT NULL THEN 'Good' 
      WHEN GRADE1 IS NULL AND GRADE2 IS NULL THEN 'AVERAGE' 
      ELSE ' ' 
     END [GRADE] 
FROM TABLE1 

請看看

CASE

1
create table #employee (ID INT,DESCRIPTION VARCHAR(20),GradeI varchar(20),GradeII VARCHAR(20)) 
INSERT INTO #employee VALUES(1,'Permanent',NULL,'T') 
INSERT INTO #employee VALUES(2,'Temp','T',NULL) 
INSERT INTO #employee VALUES(3,'Permanent',NULL,NULL) 

SELECT id ,DESCRIPTION,CASE WHEN GradeI IS NOT NULL THEN 'GOOD' 
         ELSE CASE WHEN GradeII IS NOT NULL THEN 'Excellent' 
         ELSE '' END 
         END 
FROM #employee