Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用例是基于条件获取记录的postgresql查询_Sql_Postgresql - Fatal编程技术网

用例是基于条件获取记录的postgresql查询

用例是基于条件获取记录的postgresql查询,sql,postgresql,Sql,Postgresql,我有两个表a)TBL设计和b)tblemp tblresign有一个外键,它引用tblemp主键 tblresign在列leavingdate上有 tblemp在列retiredate上有 我想写一个查询,它将检查条件,如果leavingdate存在,它将不会给出retire date,如果retire date存在,它将不会给出leavingdate,这意味着我只需要两个存在的日期中的一个 有人能帮助我在postgresql中编写select查询吗?我不知道我是否理解你的问题,但是下面这个问题

我有两个表a)TBL设计和b)tblemp

tblresign有一个外键,它引用tblemp主键

tblresign在列leavingdate上有 tblemp在列retiredate上有

我想写一个查询,它将检查条件,如果leavingdate存在,它将不会给出retire date,如果retire date存在,它将不会给出leavingdate,这意味着我只需要两个存在的日期中的一个


有人能帮助我在postgresql中编写select查询吗?我不知道我是否理解你的问题,但是下面这个问题呢:

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为空,则显示retiredate


如果两个日期都存在,您没有说明要显示哪个日期。您可能需要更改coalesce()函数的顺序以满足您的需要。如果您有一个更复杂的规则,那么您可能需要一个案例陈述来涵盖这一点。但是我们需要更多的信息来回答这个问题。

也许您应该给出一个简单的示例,说明您希望输出是什么样子的。