我有两张表a)tblresign和b)tblemp
tblresign有一个引用tblemp主键的外键
tblresign有列离开日期 tblemp有关于退役的专栏
我想写一个查询,它将检查条件是否存在离开日期而不是给出退休日期,如果退休时间存在,它将不会给出任何我只需要两个日期的离开日期,这是现在
任何人都可以帮助如何在postgresql中编写选择查询
答案 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语句来覆盖它。但我们需要更多的信息才能回答这个问题。