2014-02-17 33 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标记为正确答案.. –