2011-04-04 170 views
0

我的數據庫表PE中有兩個字段(BIT數據類型),而PER需要編寫一個sql case語句來執行以下任務。SQL CASE語句

當PER = 0然後打印「非必需」 當PER = 1,則檢查是否PE = 0然後打印「未完成」時PE = 1個打印「已完成」

以下是查詢我試圖而這是不工作

CASE pc.PER WHEN '0' THEN 'Not Required' 
            WHEN '1' THEN (CASE pc.PE WHEN '0' THEN 'Not Completed' 
         WHEN '1' THEN 'Completed') end as ab 
+0

添加了所有所需的表的'FROM'子句中? – EmCo 2011-04-04 05:43:41

回答

4

我想這可能是更容易把它寫成:

CASE 
    WHEN pc.PER = '0' THEN 'Not Required' 
    WHEN pc.PER = '1' AND pc.PE = '0' THEN 'Not Completed' 
    ELSE 'Completed' 
END 

或者你就必須後添加在您的查詢中:

CASE pc.PER WHEN '0' THEN 'Not Required' 
      WHEN '1' THEN (CASE pc.PE WHEN '0' THEN 'Not Completed' 
             WHEN '1' THEN 'Completed' 
          END) 
END AS ab 
4

您缺少一個結尾。

CASE pc.PER 
    WHEN 0 THEN 'Not Required' 
    WHEN 1 THEN 
     CASE pc.PE 
      WHEN 0 THEN 'Not Completed' 
      WHEN 1 THEN 'Completed' 
     END 
END as ab 
0

嘗試下面的語句來代替:

CASE WHEN pc.PER =0 THEN 'Not Required' 
    WHEN pc.PER =1 THEN 
     CASE WHEN pc.PE = 0 THEN 'Not Completed' 
       WHEN pc.PE = 1 THEN 'Completed' 
    End 
End as ab