用例是postgresql查询,根据条件获取记录

时间:2011-09-08 10:31:55

标签: sql postgresql

我有两张表a)tblresign和b)tblemp

tblresign有一个引用tblemp主键的外键

tblresign有列离开日期 tblemp有关于退役的专栏

我想写一个查询,它将检查条件是否存在离开日期而不是给出退休日期,如果退休时间存在,它将不会给出任何我只需要两个日期的离开日期,这是现在

任何人都可以帮助如何在postgresql中编写选择查询

1 个答案:

答案 0 :(得分:1)

我不确定我理解你的问题,但是这个:

SELECT e.emp_name,
       e.id,
       coalesce(r.leavingdate, e.retiredate) as some_date 
FROM tblemp e
   LEFT JOIN tblresign r ON e.id = r.emp_id

如果员工的tblresign中没有行,或者该行的leavingdate为null,则显示retiredate。

如果两个日期都存在,您没有说明要显示的日期。您可能需要更改coalesce()函数中的顺序以满足您的需要。如果你有一个更复杂的规则,那么你可能想要一个CASE语句来覆盖它。但我们需要更多的信息才能回答这个问题。