SQL如何获取包含空/空数据的最小时间戳(db2)

SQL如何获取包含空/空数据的最小时间戳(db2),sql,db2,Sql,Db2,表2 我很难尝试编写一个SQL来返回基于ID的没有日期或最小日期的ID 例如,仅对于ID 01、03, sql应该返回03,因为在01和03之间,03的日期较早 但仅限于ID 01,02,03, sql应该返回02,因为02没有数据 对于所有ID,01,02,03,04 sql可以返回02或04 我一直在玩MINDATE和NOT EXISTS子句,但运气不好,因为我不知道如何返回空数据 非常感谢任何示例SQL 我试过了 ID DATE -- ---------- 01 2018-04-01

表2

我很难尝试编写一个SQL来返回基于ID的没有日期或最小日期的ID

例如,仅对于ID 01、03, sql应该返回03,因为在01和03之间,03的日期较早

但仅限于ID 01,02,03, sql应该返回02,因为02没有数据

对于所有ID,01,02,03,04 sql可以返回02或04

我一直在玩MINDATE和NOT EXISTS子句,但运气不好,因为我不知道如何返回空数据

非常感谢任何示例SQL

我试过了

ID  DATE
--  ----------
01  2018-04-01
03  2017-06-23
但是上面的sql将为我提供现有日期的最小值。不会将不存在的日期默认为1900-01-01。

使用左外联接:

从表1 t1中选择t1.name、t2.date t1.id=t2.id上的左联接表2 t2

然后在t2.date上使用isnull在该字段中粘贴任何您想要的内容。

使用左外连接:

从表1 t1中选择t1.name、t2.date t1.id=t2.id上的左联接表2 t2


然后在t2.date上使用isnull在该字段中粘贴您想要的任何内容。

假设您想要检查的值列在表1中

SELECT MIN(CASE WHEN DATE IS NULL THEN '1900-01-01' ELSE DATE END)
FROM TABLE2
WHERE ID IN (01,02,03,04)

假设要检查的值列在表1中

SELECT MIN(CASE WHEN DATE IS NULL THEN '1900-01-01' ELSE DATE END)
FROM TABLE2
WHERE ID IN (01,02,03,04)

如果两个表中存在不匹配的值,请使用完全联接

SELECT MIN(CASE WHEN table2.DATE IS NULL THEN '1900-01-01' ELSE table2.DATE END) as output
FROM TABLE1
left join TABLE2
  on table1.ID = table2.ID

如果两个表中存在不匹配的值,请使用完全联接

SELECT MIN(CASE WHEN table2.DATE IS NULL THEN '1900-01-01' ELSE table2.DATE END) as output
FROM TABLE1
left join TABLE2
  on table1.ID = table2.ID

像这样的怎么样?祝你好运

挑选 t1.id 从…起 t1 左连接 t2 在…上 t2.id=t1.id 左连接 选择 最小合并日期,日期“2000-01-01”为最小合并日期 从…起 t2 最短日期 在…上 最小_日期=合并2.date,日期'2000-01-01' ;
像这样的怎么样?祝你好运

挑选 t1.id 从…起 t1 左连接 t2 在…上 t2.id=t1.id 左连接 选择 最小合并日期,日期“2000-01-01”为最小合并日期 从…起 t2 最短日期 在…上 最小_日期=合并2.date,日期'2000-01-01' ;

使用isnulldate,'1900-01-01'-这将默认1900-01-01DB2为空,它是NVLdate,'1900-01-01',但它仍然返回null,而不是默认值,因此您的建议没有起作用,请参阅下面我的完整答案。使用isnulldate,'1900-01-01'-这将默认1900-01-01DB2为空,它是NVLdate,'1900-01-01'但它仍然返回null,不是默认值,所以你的建议不起作用。下面是我的完整答案谢谢。这不完全是我想要的,但你给了我一个方向。好的,好的,我能进一步帮助你吗?到底什么仍然不正确?我意识到我甚至不需要表1。所以我编辑了这个问题,但是很多人已经用表1回答了。好的,我明白了,所以只需应用相同的逻辑,而不使用连接,谢谢,但必须是db2。它仍然返回空行。谢谢。这不完全是我想要的,但你给了我一个方向。好的,好的,我能进一步帮助你吗?到底什么仍然不正确?我意识到我甚至不需要表1。所以我编辑了这个问题,但是很多人已经用表1回答了。好的,我明白了,所以只需应用相同的逻辑,而不使用连接,谢谢,但必须是db2。它仍然返回空行。谢谢,LEFT JOIN确实有帮助!谢谢,左加入确实有帮助!谢谢,左加入确实有帮助@如果这解决了你的问题,请接受这个答案。看起来是的。谢谢,LEFT JOIN确实帮了忙@如果这解决了你的问题,请接受这个答案。看起来是的。谢谢,LEFT JOIN确实帮了忙!谢谢,左加入确实有帮助!