2014-02-17 62 views
0

我正試圖返回生活在康涅狄格州貝瑟尼的人們的記錄。如果一個人也是一名員工,那麼他們的工作中心ID也會顯示出來。否則,返回空值。我使用表格員工和人員。我堅持的是CASE聲明,如果某人是員工(如果他們有員工ID),我試圖返回工作中心ID,否則應打印空值。SQL:如何在條件語句中返回記錄並在返回空值(如果爲false)?

SELECT last_name, 
     first_name, 
     birth_date, 
     city, 
     state, 
     employee_id, 
     work_center_id, 
     (CASE 
       WHEN employee_id = 'IS NOT NULL' THEN work_center_id 
       ELSE employee_id = 'NULL', 
      END) 
    FROM person, 
     employee 
    WHERE city LIKE UPPER('Bethany') 
     AND state= 'Connecticut' 
ORDER BY employee_id ASC; 

我不知道如何讓它返回一條記錄,如果它滿足條件或條件不存在時打印一個空值。我查看了Oracle i-Learning幻燈片和我的老師的幻燈片,但我一直無法找出如何。我正在使用Oracle SQL。

回答

0

試試這個

SELECT last_name, 
     first_name, 
     birth_date, 
     city, 
     state, 
     employee_id, 
     work_center_id, 
     CASE 
     WHEN employee_id IS NOT NULL THEN work_center_id 
     ELSE NULL 
     END AS Work_CenterId 
FROM person, 
     employee 
WHERE city LIKE Upper('Bethany') 
     AND state = 'Connecticut' 
ORDER BY employee_id ASC; 
+0

謝謝!它會爲擁有員工ID的人員運行並顯示工作中心ID。這是否會讓員工ID值爲空,即沒有員工ID的人員?我只是想確保它確實。 – user3238590

+0

如果值不存在,employee_id將保持爲空... –

+0

@ user3238590如果它幫助您,請將plz標記爲正確答案.. –