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 我试过了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
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确实帮了忙!谢谢,左加入确实有帮助!